Такой простейший вариант контроля неудобен.
Такой простейший вариант контроля неудобен. Во-первых, довольно странно выглядит пустое предупреждающее окно; во-вторых, с помощью кнопки "ОК" нельзя будет закрыть диалог при пустом поле года, так как при нажатии этой кнопки выполняется проверка правильности содержимого окна года, а пустое окно считается неправильным.
Диалоговые окна 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
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий