Cтраница 2
В добавленном коде создается экземпляр класса диалогового окна CFormat. Для модального диалогового окна этот объект обычно определяется как локальная переменная, удаляемая сразу после завершении функции, в которой она определена. [16]
Общим свойством утилит является запуск из другой утилиты или диаграмматора, например из RON или Design Editor. Утилиты выводят модальное диалоговое окно, которое нужно закрыть до того, как можно будет возвратиться к окну, из которого была вызвана утилита. [17]
Второй метод ( обычный для всех надписей) - обработчик события On DoubleClick. Метод LabeLDoubleCLick выбирает свойство Caption текущей надписи ( обозначенной параметром Sender) в списке диалога и затем отображает модальное диалоговое окно. [18]
Как и модальное диалоговое окно, немодальное создают, используя редактор диалоговых окон Developer Studio. Чтобы породить класс для управления немодальным диалоговым окном от класса CDialog и определить переменные-члены и обработчики сообщений, используют мастер ClassWizard, как и для модального диалогового окна. [19]
Необходимо определить обработчик сообщения OnCancel для класса диалогового окна. Если диалоговое окно содержит кнопку ОК. IDOK), то необходимо определить обработчик сообщения опок. Эти функции описаны во врезке Закрытие диалогового окна в этой главе. Однако для немодального диалогового окна названные функции вызывают функцию DestroyWindow, закрывающую диалоговое окно, и не должны вызывать обработчик сообщения базового класса. Версии функций базового класса OnCancel и ОпОК вызывают функцию EndDialog, скрывающую диалоговое окно, но не уничтожающую его. Заметьте: при использовании мастера ClassWizard для определения переменных класса диалогового окна функция ОпОК должна была бы вызвать функцию CWnd: : UpdateDate, передавая ей значение TRUE или вызывая ее без параметров, чтобы сохранить и проверить содержимое элементов управления. В модальном диалоговом окне эта задача выполняется версией функции ОпОК базового класса. [20]