Шаг 63 - DialogBox

Макро 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 сообщения. Вызывается она только из функции диалогового окна.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 06.02.2001