1. Существуют базовые контролы (рис.1), которые можно настраивать вручную (edit control) либо программно (поменять цвет, задать ramp, указать тип данных, enable/disable/hidden, и т.п.), глубокой кастомизации, такой как в LabVIEW для них нет. Далее существуют т.н. Custom controls (рис.2), которые являются либо надстройками над базовыми контролами, либо ActiveX (3d graph) контролами. Они так же не поддаются кастомизации с помощью визардов, но для них существуют .С и .fp файлы в которых реализована та самая надстройка и функции для работы с ними. Т.е. Custom controls существуют в виде соответствующих исходников или могут быть созданы на базе имеющихся контролов и примитивов.Crowbar писал(а):Контролы там выглядят как элементы библиотек, их можно видоизменять, создавать? ...
2. Положительная фича :) controls можно создавать программно и даже во время выполнения программы. Вот иллюстрирующий это фрагмент кода:
Код: Выделить всё
/*---------------------------------------------------------------------------*/
/* Create a panel with two Command Buttons and a Numeric readout. Notice */
/* that both Command Buttons are assigned callback functions with the */
/* InstallCtrlCallback () function. This function accomplishes */
/* programmaticall the control-to-callback assignment normally done in the */
/* UIR Editor. */
/*---------------------------------------------------------------------------*/
void BuildUI (void)
{
int quitBtn;
int genDataBtn;
/* Create a new panel and center it */
g_hpanel = NewPanel (0, "Sample LabWindows/CVI Panel", VAL_AUTO_CENTER,
VAL_AUTO_CENTER, 170, 200);
SetPanelAttribute (g_hpanel, ATTR_CONFORM_TO_SYSTEM, 1);
/* Create a new "Generate Data" command button */
genDataBtn = NewCtrl (g_hpanel, CTRL_SQUARE_COMMAND_BUTTON,
"Generate Data", 20, 50);
InstallCtrlCallback (g_hpanel, genDataBtn, GenerateData, 0);
SetCtrlAttribute (g_hpanel, genDataBtn, ATTR_CMD_BUTTON_COLOR,
VAL_DK_GREEN);
SetCtrlAttribute (g_hpanel, genDataBtn, ATTR_WIDTH, 100);
/* Create a new "Quit" command button */
quitBtn = NewCtrl (g_hpanel, CTRL_SQUARE_COMMAND_BUTTON, "Quit", 130, 50);
InstallCtrlCallback (g_hpanel, quitBtn, Shutdown, 0);
SetCtrlAttribute (g_hpanel, quitBtn, ATTR_CMD_BUTTON_COLOR, VAL_RED);
SetCtrlAttribute (g_hpanel, quitBtn, ATTR_WIDTH, 100);