ObjectARX, AutoCAD. Среда программирования библиотеки C++



Добавьте Код к Обработчикам - часть 4


if (m_ctrlRegAppComboBox.FindString(-1, strFromEdit) == CB_ERR)

if (acdbRegApp(strFromEdit) == RTNORM)

m_ctrlRegAppComboBox.AddString(strFromEdit);

}

7, чтобы делать некоторую проверку правильности данных, мы обрабатываем это в OnOk () обработчик. Это, конечно, может быть сделано в любое время. Также обратите внимание, что OnOk () обработчик сохраняет данные в параметр пользователя (системный реестр), используя SetDialogData () функция:

void AsdkAcUiDialogSample::OnOK()

{

if (!ValidatePoint()) {

AfxMessageBox("Sorry, Point out of desired range.");

m_ctrlXPtEdit.SetFocus();

return;

}

if (!ValidateAngle()) {

AfxMessageBox("Sorry, Angle out of desired range.”);

m_ctrlAngleEdit.SetFocus();

return;

}

// Store the data into the registry

//

SetDialogData("ANGLE", m_strAngle);

SetDialogData("POINTX", m_strXPt);

SetDialogData("POINTY", m_strYPt);

SetDialogData("POINTZ", m_strZPt);

CAcUiDialog::OnOK();

}

8 Наконец, OnInitDialog () функция заботится о всей инициализации, включая изменение размеров и требования постоянства данных:

BOOL AsdkAcUiDialogSample::OnInitDialog()

{

// Set the dialog name for registry lookup and storage

//

SetDialogName("AsdkAcUiSample:AsdkAcUiDialog");

CAcUiDialog::OnInitDialog();

DLGCTLINFOdlgSizeInfo[]= {

{ IDC_STATIC_GROUP1, ELASTICX, 20 },

{ IDC_STATIC_GROUP1, ELASTICY, 100 },

{ IDC_EDIT_XPT,ELASTICX, 20 },

{ IDC_EDIT_YPT,ELASTICX, 20 },

{ IDC_EDIT_ZPT,ELASTICX, 20 },

{ IDC_EDIT_ANGLE, ELASTICX, 20 },

{ IDC_STATIC_GROUP2, MOVEX, 20 },

{ IDC_STATIC_GROUP2, ELASTICY, 100 },

{ IDC_STATIC_GROUP2, ELASTICX, 80 },

{ IDC_LIST_BLOCKS, MOVEX, 20 },

{ IDC_LIST_BLOCKS, ELASTICY, 100 },

{ IDC_STATIC_TEXT2,MOVEX, 20 },

{ IDC_STATIC_TEXT2,MOVEY, 100 },

{ IDC_LIST_BLOCKS, ELASTICX, 80 },

{ IDC_STATIC_TEXT2,ELASTICX, 80 },

{ IDC_STATIC_GROUP3, MOVEY, 100 },

{ IDC_STATIC_GROUP3, ELASTICX, 20 },

{ IDC_COMBO_REGAPPS, MOVEY, 100 },




Содержание  Назад  Вперед