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



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


//

BeginEditorCommand();

// Set up the default point for picking an angle

// based on the m_strXPt, m_strYPt, and m_strZPt values

//

ads_point pt;

acdbDisToF(m_strXPt, -1, &pt[X]);

acdbDisToF(m_strYPt, -1, &pt[Y]);

acdbDisToF(m_strZPt, -1, &pt[Z]);

double angle;

// Get a point from the user

//

if (acedGetAngle(pt, "\nPick an angle: ", &angle) == RTNORM) {

// If we got an angle, go back to the dialog

//

CompleteEditorCommand();

// Convert the acquired radian value to degrees since the

// AcUi control can convert that to the other formats.

//

m_strAngle.Format("%g", angle*(180.0/PI));

DisplayAngle();

} else {

// otherwise cancel the command (including the dialog)

//

CancelEditorCommand();

}

}

5 Теперь обработчики окна редактирования осуществлены. В основном мы только хотим конвертировать{*преобразовать*} значения к текущим параметрам настройки Модулей:

void AsdkAcUiDialogSample::OnKillfocusEditAngle()

{

// Get and update text the user typed in.

//

m_ctrlAngleEdit.Convert();

m_ctrlAngleEdit.GetWindowText(m_strAngle);

}

void AsdkAcUiDialogSample::OnKillfocusEditXpt()

{

// Get and update text the user typed in.

//

m_ctrlXPtEdit.Convert();

m_ctrlXPtEdit.GetWindowText(m_strXPt);

}

void AsdkAcUiDialogSample::OnKillfocusEditYpt()

{

// Get and update text the user typed in.

//

m_ctrlYPtEdit.Convert();

m_ctrlYPtEdit.GetWindowText(m_strYPt);

}

void AsdkAcUiDialogSample::OnKillfocusEditZpt()

{

// Get and update text the user typed in.

//

m_ctrlZPtEdit.Convert();

m_ctrlZPtEdit.GetWindowText(m_strZPt);

}

6 обработчик поля со списком позволяет пользователю напечатывать строку и затем регистрировать это как прикладное имя. Это действительно не имеет смысл для приложения, но это показывает использованию поля со списком:

void AsdkAcUiDialogSample::OnKillfocusComboRegapps()

{

CString strFromEdit;

m_ctrlRegAppComboBox.GetWindowText(strFromEdit);




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