Класс CDialog
Базовый класс, используемый для отображения диалогового окна на экране.
class CDialog : public CWnd
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Создает объект CDialog. |
Открытые методы
Имя |
Описание |
---|---|
Инициализирует объект CDialog. Создает безрежимное диалоговое окно вложение и его к объекту CDialog. |
|
Создает безрежимное диалоговое окно из шаблона диалоговых окон в памяти (не соответствии ресурсе). |
|
Вызывает модального диалогового окна, и возвращает деланный. |
|
Закрывает модальное диалоговое окно. |
|
Получает ИД кнопки по умолчанию управления диалогового окна. |
|
Перемещает фокус на указанный элемент управления диалогового окна в диалоговом окне. |
|
Создание модального диалогового окна из шаблона диалоговых окон в памяти (не соответствии ресурсе). Параметры хранятся до тех пор, пока функция DoModal не называется. |
|
Преобразование единицы диалогового окна прямоугольника, чтобы экранировать единиц. |
|
Фокус перемещается к следующему элементу управления диалогового окна в диалоговом окне. |
|
Переопределение, чтобы увеличить инициализации диалогового окна. |
|
Переопределение, чтобы определить шрифт, элемент управления диалогового окна для использования, когда он отрисовывает текст. |
|
Перемещает фокус к предыдущему элементу управления диалогового окна в диалоговом окне. |
|
Изменяет по умолчанию элемент управления кнопки диалогового окна в указанной кнопки. |
|
Задает идентификатор контекстной справки для диалогового окна. |
Защищенные методы
Имя |
Описание |
---|---|
Переопределение выполнения кнопку отмена или ключевую действие ESC. Значение по умолчанию - закрывает диалоговое окно " и возвращать IDCANCELDoModal . |
|
Переопределение выполнить действие кнопки ОК в модальном диалоговом окне. Значение по умолчанию - закрывает диалоговое окно и DoModal возвращает IDOK. |
Заметки
Диалоговые окна 2 типов: модальный and modeless. Модальное диалоговое окно должно быть закрыто пользователем прежде, чем приложение продолжает. Безрежимное диалоговое окно позволяет пользователю для отображения диалогового окна и вернуться в другой задаче без отмены или удалить диалоговое окно.
Объект CDialog сочетание шаблона диалогового окна и CDialog- производный класс. Используйте редактор диалоговых окон для создания шаблона диалоговых окон и сохранить ее в ресурсе, а затем с помощью мастера добавления классов, чтобы создать класс, производный от CDialog.
Откроется диалоговое окно, как любое другое окно получает сообщения от Windows. В диалоговом окне, особенно интересует в обработке сообщения уведомления из элементов управления диалогового окна с тех пор, как пользователь взаимодействует с данным диалоговым окном. Используйте окно свойств для выбора сообщений, которые желают обрабатывать и добавляет соответствующие записи сообщение- сопоставления и функции-члены обработчика сообщений к классу. Нужно только написать код, относящийся к приложению в функциях-членах обработчика.
При необходимости можно создавать записи и функции-члены сообщение- сопоставления вручную.
Во всех но самом тривиальном диалоговом окне, нужно добавить элемент переменные в производный класс диалогового окна для хранения данных, введенный в управления диалогового окна пользователем или для отображения данных для пользователя. Можно использовать мастер добавление переменной для создания переменные-члены и связать их с элементами управления. Одновременно можно выбрать тип переменной и допустимый диапазон значений для каждой переменной. Мастера кода добавляет переменные-члены для производного класса диалогового окна.
Сопоставление данных создается автоматически для обработки обмен данными между переменными участника и элементами управления диалогового окна. Сопоставление данных предоставляет функции, которые инициализируют элементы управления в диалоговом окне с правильными значениями, извлекающих данные и проверить данные.
Для создания модального диалогового окна, создайте объект в стеке, используя конструктор для производного класса диалогового окна, а затем вызовите DoModal для создания диалоговое окно и его элементы управления. При необходимости создания безрежимного диалогового окна, вызовите Создать в конструкторе класса диалогового окна.
Можно также создать шаблон в памяти с помощью структуры данных DLGTEMPLATE, как описано в Windows SDK. После построения объект CDialog, вызовите CreateIndirect для создания безрежимного диалогового окна или вызов InitModalIndirect и DoModal для создания модального диалогового окна.
Сопоставление данных обмена и проверкой записывано в переопределенном методе CWnd::DoDataExchange, добавлено к новому классу диалогового окна. См. раздел функции-члена DoDataExchange в CWnd дополнительные сведения о функциональности обмена и проверкой.
Программист и платформа вызывает функцию DoDataExchange и косвенно через вызов CWnd::UpdateData.
Платформа вызывает функцию UpdateData, когда пользователь нажимает кнопку ok, чтобы закрыть модальное диалоговое окно. (Данные не восстановлены если нажата кнопка Отмены). Реализация по умолчанию OnInitDialog также вызывает UpdateData для установки начальных значений элементов управления. Как правило, переопределите OnInitDialog для инициализации элементов управления. OnInitDialog вызываются после завершения всех элементов управления диалогового окна созданы и непосредственно перед тем, как отображается диалоговое окно.
Можно вызвать CWnd::UpdateData в любой момент во время выполнения режимного или немодального диалогового окна.
При разработке диалоговое окно вручную, то ее добавить необходимые производному классу переменные-члены для диалогового окна, и добавлении функции-члены, чтобы задать или получить эти значения.
Модального диалогового окна автоматически закрывает когда пользователь нажимает кнопки ОК или отмена или когда код вызывает функцию-член EndDialog.
При реализации безрежимное диалоговое окно, всегда переопределить функцию-член OnCancel и вызовите DestroyWindow из него. Не вызывайте базовый класс CDialog::OnCancel, поскольку она вызывает EndDialog, которое сделает диалоговое окно невидимым, но не разрушит его. Также необходимо переопределить PostNcDestroy для немодального диалогового окна для удаления this, поскольку обычно выделены безрежимные диалоговые окна с новый. Окнам модальным диалогового окна обычно создаются во фрейме и очистка не нужна PostNcDestroy.
Дополнительные сведения о CDialog см. в разделах:
Q262954 статья базы знаний Майкрософт: Практическое руководство: Диалоговое окно " создание Resizeable с полосами прокрутки
Иерархия наследования
CDialog
Требования
Заголовок: afxwin.h