CDialog

Класс CDialog является базовый класс, используемый для отображения диалоговых окон на экране. Диалоговые окна делятся на два типа: модальные и немодальные. Модального диалогового окна должны быть закрыты пользователем перед приложения продолжается. Немодальное диалоговое окно позволяет пользователю открыть диалоговое окно и вернуться к другой задачи без отмены или снятия диалоговым окном.

Объекта CDialog является сочетанием шаблона диалогового окна и CDialog-производного класса. Использование редактора диалоговых окон для создания шаблона диалогового окна и хранить его в ресурс, а затем использовать ClassWizard для создания класса, производного от CDialog.

Диалоговое окно, как любое другое окно, получает сообщения от Windows. В диалоговом окне вы особенно заинтересованы в обработке уведомлений от элементов управления диалоговым окном, так как это, как пользователь взаимодействует с вашим диалоговым окном. ClassWizard переходит через потенциальных сообщений, создаваемых каждым элементом управления в диалоговом, и вы можете выбрать какие сообщения вы хотите обработать. ClassWizard затем добавляет соответствующие карты сообщение записи и функции-члены обработчика сообщений для нового класса. Вам нужно только написать код в обработчике функций-членов.

Если вы предпочитаете, вы можете всегда написать записей сообщений карты и функции-члены себя вместо того, чтобы с помощью ClassWizard.

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

ClassWizard затем пишет карту данных автоматически обрабатывать обмена данными между переменными-членами и элементы управления диалоговым окном. Карта данных предоставляет функции, которые инициализации элементов управления в диалоговом окне с надлежащего значения, извлечения данных и проверка данных.

Для создания модального диалогового окна, создайте объект в стеке, используя конструктор для класса производного диалогового окна и затем вызовите DoModal для создания диалогового окна и ее элементов управления. Если вы хотите создать немодальное диалоговое окно, вызовите Create в конструкторе вашего класса диалогового окна.

Можно также создать шаблон в памяти с помощью DLGTEMPLATE данных структуры, как описано в документации Win32 SDK. После создания объекта CDialog , звоните CreateIndirect для создания немодальное диалоговое окно, или по телефону InitModalIndirect и DoModal для создания модального диалогового окна.

ClassWizard пишет карта обмена и проверки данных в переопределении CWnd::DoDataExchange ClassWizard добавляет к новому классу диалогового окна. Смотрите больше на обмена и проверки функциональности DoDataExchange функции-члена в CWnd.

Программист и рамки вызов DoDataExchange косвенно с помощью вызова CWnd::UpdateData.

Платформа вызывает UpdateData , когда пользователь нажимает кнопку ОК, чтобы закрыть модальное диалоговое окно. (Не извлекаются данные при нажатии кнопки "Cancel".) Реализация по умолчанию OnInitDialog вызывает метод UpdateData , чтобы задать начальные значения элементов управления. Обычно переопределяют OnInitDialog для дальнейшей инициализации элементов управления. OnInitDialog вызывается после создания всех элементов управления диалогового окна и непосредственно перед диалогового окна появляется.

CWnd::UpdateData можно вызвать в любое время в ходе выполнения модальные или немодального диалогового окна.

Если вы разрабатываете диалоговое окно вручную, добавлении переменных-членов необходимые к классу производного-диалоговое окно самостоятельно, а добавить функции-члены для задания или эти значения.

Более подробно об ClassWizard, см. С помощью ClassWizard в руководство Visual C++ программиста.

Вызовите CWinApp::SetDialogBkColor , чтобы задать цвет фона для диалоговых окон в приложении.

Модальное диалоговое окно закрывается автоматически, когда пользователь нажимает кнопки ОК или отмена или когда код вызывает функцию-член EndDialog.

При реализации немодальное диалоговое окно, всегда переопределить функцию-член OnCancel и вызвать DestroyWindow от внутри него. Не называйте базовый класс CDialog::OnCancel, потому что он вызывает EndDialog, который будет скрытия диалогового окна, но не уничтожить его. Следует также переопределить PostNcDestroy безрежимного диалоговых окон для того чтобы удалить этот, так как немодальные диалоговые окна обычно выделяются с новым. Модальные диалоговые окна обычно создаются в кадре и не обязательно очистки PostNcDestroy.

Более подробную информацию о CDialog, найти в статье Диалогового окна поле темы в Руководстве Visual C++ программист.

# include lt;afxwin.h>

Члены классаБазовый класс | Иерархическая схема

Samples    MFC Sample DBFETCH MFC Sample DLGCBR32 MFC Sample DLGTEMPL MFC Sample EXTBIND MFC Sample FTPTREE MFC Sample HELLO MFC Sample MDIBIND MFC Sample VCTERM

Index