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

       

Пример функции ObjectARX


Следующая функция ObjectARX отображает пример:

int showalert()

{

int dcl_id, dbstatus;

ads_hdlg dbhello;

// Load the DCL file.

//

ads_load_dialog("hello.dcl", &dcl_id);

// Initialize the dialog.

//

if (ads_new_dialog("hello", dcl_id, NULLCB, &dbhello) != RTNORM) {

acdbFail("Unable to initialize dialog box called

\"hello\"\n");

return BAD; // Exit if this does not work

}

// Associate an action. End expression with a key, in this

// case, the OK button. End the dialog when OK is pressed.

//

ads_action_tile(dbhello, "accept", accept_OK);

// Display the dialog box.

//

ads_start_dialog(dbhello, &dbstatus);

ads_unload_dialog(dcl_id); // Unload the DCL file

return GOOD;

}

static void CALLB accept_OK(ads_callback_packet *cpkt)

{

// DLGOK == User pressed OK

//

ads_done_dialog(cpkt->dialog, DLGOK);

}

После ads_start_dialog () запрос, диалоговое окно остается активным, пока пользователь не выбирает неперекрывающее расположение (обычно кнопка). Функция ads_action_tile () вызвана, и это вызывает функцию повторного вызова. Параметры к функции повторного вызова включены в отдельную структуру пакета повторного вызова. Повторный вызов вызывает ads_done_dialog ().

Комплексное диалоговое окно требует, больше вызывает к ads_action_tile (), возможно другая инициализация вызывает, и вероятно большее количество ввода, обрабатывающего между ads_start_dialog () и ads_unload_dialog () вызывает. Полная последовательность запроса, тем не менее, остается тем же самый.



Содержание раздела