Поделиться через


Класс CDialog

Базовый класс, используемый для отображения диалогового окна на экране.

class CDialog : public CWnd

Члены

Открытые конструкторы

Имя

Описание

CDialog::CDialog

Создает объект CDialog.

Открытые методы

Имя

Описание

CDialog::Create

Инициализирует объект CDialog. Создает безрежимное диалоговое окно вложение и его к объекту CDialog.

CDialog::CreateIndirect

Создает безрежимное диалоговое окно из шаблона диалоговых окон в памяти (не соответствии ресурсе).

CDialog::DoModal

Вызывает модального диалогового окна, и возвращает деланный.

CDialog::EndDialog

Закрывает модальное диалоговое окно.

CDialog::GetDefID

Получает ИД кнопки по умолчанию управления диалогового окна.

CDialog::GotoDlgCtrl

Перемещает фокус на указанный элемент управления диалогового окна в диалоговом окне.

CDialog::InitModalIndirect

Создание модального диалогового окна из шаблона диалоговых окон в памяти (не соответствии ресурсе). Параметры хранятся до тех пор, пока функция DoModal не называется.

CDialog::MapDialogRect

Преобразование единицы диалогового окна прямоугольника, чтобы экранировать единиц.

CDialog::NextDlgCtrl

Фокус перемещается к следующему элементу управления диалогового окна в диалоговом окне.

CDialog::OnInitDialog

Переопределение, чтобы увеличить инициализации диалогового окна.

CDialog::OnSetFont

Переопределение, чтобы определить шрифт, элемент управления диалогового окна для использования, когда он отрисовывает текст.

CDialog::PrevDlgCtrl

Перемещает фокус к предыдущему элементу управления диалогового окна в диалоговом окне.

CDialog::SetDefID

Изменяет по умолчанию элемент управления кнопки диалогового окна в указанной кнопки.

CDialog::SetHelpID

Задает идентификатор контекстной справки для диалогового окна.

Защищенные методы

Имя

Описание

CDialog::OnCancel

Переопределение выполнения кнопку отмена или ключевую действие ESC. Значение по умолчанию - закрывает диалоговое окно " и возвращать IDCANCELDoModal .

CDialog::OnOK

Переопределение выполнить действие кнопки ОК в модальном диалоговом окне. Значение по умолчанию - закрывает диалоговое окно и 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 с полосами прокрутки

Иерархия наследования

CObject

CCmdTarget

CWnd

CDialog

Требования

Заголовок: afxwin.h

См. также

Ссылки

Класс CWnd

Диаграмма иерархии

Основные понятия

MFC просматривает DLGCBR32

Образец DLGTEMPL MFC