Макро DialogBox создает модальное диалоговое окно из шаблона в ресурсах. Диалоговое окно не вернет управление пока не будет вызвана функция EndDialog. Эта функция использует функцию CreateWindowEx для создания окна.
INT_PTR DialogBox { HINSTANCE hInstance, // указатель на модуль LPCTSTR lpTemplate, // шаблон диалога HWND hWndParent, // окно владелец DLGPROC lpDialogFunc // процедура диалогового окна );
Если функция не выполняется по причине отсутствия окна владельца, то ворачивается 0, если по другой причине, то -1. Пример применения:
case ID_ABOUT: { DialogBox(hInst,MAKEINTRESOURCE (IDD_DIALOG1), hwnd, DlgProc); return 0; }
Работа диалогового окна заканчивается функцией EndDialog.
BOOL EndDialog ( HWND hDlg, // указатель на диалоговое окно INT_PTR nResult // код возврата );
Если функция успешна, то она должна вернуть ненулевое значение, в противном случае ноль. Процедура диалогового окна может вызывать EndDialog в любое время, даже в течение обработки WM_INITDIALOG сообщения. Вызывается она только из функции диалогового окна.