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


         

Входные Опции для Функций Ввода пользователя - часть 2


Следующий код позволяет произвольный ввод (проверка ошибок минимальна).

int age, rc;

char userstring[511];

acedInitGet(RSG_NONULL | RSG_NOZERO | RSG_NONEG | RSG_OTHER, "Mine Yours");

if ((rc = acedGetInt("How old are you? ", &age)) == RTKWORD) {

// Keyword or arbitrary input

acedGetInput(userstring);

}

В этом примере, acedGetInt () возвращает значения, показанные в следующей таблице, в зависимости от ввода пользователя.

Произвольный ввод пользователя

 Ввода пользователя

Результат

41

 AcedGetInt () возвращает RTNORM и устанавливает возраст в 41

m

 AcedGetInt () возвращает RTKWORD, и acedGetInput () возвращает “Источник”

y

 AcedGetInt () возвращает RTKWORD, и acedGetInput () “Ваши” возвращения

Двадцать

 AcedGetInt () возвращает RTKWORD, и acedGetInput () возвращается “двадцать”

Какой???

 AcedGetInt () возвращает RTKWORD, и acedGetInput () возвращения “ какой??? ”

-10

 AutoCAD отклоняет этот ввод и восстанавливает изображение подсказки, поскольку RSG_NONEG установлен (другие разрядные коды имеют приоритет по RSG_OTHER)

-34.5

 AcedGetInt () возвращает RTKWORD, и acedGetInput () возвращается ", “-34.5" AutoCAD не отклоняет это значение, потому что это ожидает целое число, не реальное значение (если бы бы это было acedGetReal () запрос, AutoCAD принял бы отрицательное целое число как произвольный ввод, но отклонил бы отрицательное реальное значение)

ОБРАТИТЕ ВНИМАНИЕ На acedDragGen () функция указала бы произвольный ввод (если этому позволил предшествующий acedInitGet () запрос) возвращая RTSTR вместо RTKWORD.




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