Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 69


Такой простейший вариант контроля неудобен. Во-первых, довольно странно выглядит пустое пре­дупреждающее окно; во-вторых, с помощью кнопки "ОК" нельзя будет закрыть диалог при пустом поле года, так как при нажатии этой кнопки выполняется проверка правильности содержимого окна года, а пустое окно считается неправильным.


Диалоговые окна                                                                                                                 265

Для заполнения предупреждающего окна разумной надписью в файл ресурсов надо ввести ресурс STRINGTABLE (текстовые строки) с требуемым текстом в указанном ниже формате:

STRINGTABLE{

IDS_VALNOTINRANGE   "Введенное  значение  не  в диапазоне  от  %ld до  %ld." }

Этот ресурс используется той функцией класса контроля, которая выводит на экран предупреждаю­щее окно. Для класса TRangeValidator строка с содержимым предупреждающего окна должна иметь идентификатор IDS_VALNOTINRANGE, значение которого (32522) описано в файле validate.rh. Чтобы не включать весь этот файл в программу, достаточно в файле заголовков повторить строку из него:



#define IDS_VALNOTINRANGE 32522

В результате при вводе неправильного года на эк­ран будет выводиться окно, показанное на рис. 28.8.

Для устранения второго недостатка можно вместо кнопки "ОК" использовать кнопку "Отмена", что дос­тигается путем замены идентификатора ШОК на иден­тификатор IDCANCEL (в этом случае автоматически изменится и цветной символ на кнопке). Нажатие на кнопку "Отмена" не вызывает проверку правильности содержимого полей диалога, и закрыть этой кнопкой диалог можно будет и при отсутствии в поле года како­го-либо содержимого.

Немодальные диалоги


Процедура создания и обслуживания немодального диалога проиллюстрирована в примере 28-4; вы­вод этой программы показан на рис. 28.9.

//Приложение  28-4.   Немодальный диалог

//Файл 28-4.h

#define Dlg                  1

#define CM_VIEW         201




Начало  Назад  Вперед



Книжный магазин