6.31.1.6 - Функция DialogBox

(БлокДиалога)

Макрокоманда DialogBox создает модальное диалоговое окно из ресурса шаблона блока диалога. DialogBox не возвращает управления до тех пор, пока заданная функция обратного вызова не прекратит работу модального диалогового окна путем вызова функции EndDialog. Макрокоманда DialogBox использует функцию DialogBoxParam.

Синтаксис

int DialogBox
(
	HINSTANCE hInstance,		// дескриптор экземпляра программы
	LPCTSTR lpTemplate,		// идентифицирует шаблон диалогового окна
	HWND hWndParent,		// дескриптор окна владельца
	DLGPROC lpDialogFunc 		// указатель на процедуру блока диалога
);

Параметры
hInstance
Идентифицирует экземпляр модуля, исполняемый файл которого содержит шаблон диалогового окна.
lpTemplate
Идентифицирует шаблон диалогового окна. Этот параметр является или указателем на строку символов с нулевым символом в конце, определяющую название шаблона диалогового окна, или целочисленным значением, которое определяет идентификатор ресурса шаблона блока диалога. Если параметр определяет идентификатор ресурса, его старшее слово должно быть нулевое, а его младшее слово должно содержать идентификатор. Вы можете использовать макрокоманду MAKEINTRESOURCE, чтобы создать это значение.
hWndParent
Идентифицирует окно, которое владеет блоком диалога.
lpDialogFunc
Указывает на процедуру диалогового окна. За более детальной информацией о процедуре диалогового окна обратись к статье о функции повторного вызова DialogProc.

Возвращаемые значения
Если функция завершает свою работу успешно, возвращаемое значение является параметром nResult при вызове функции EndDialog, используемой для завершения работы блока диалога.
Если функция потерпела неудачу, возвращаемое значение – (минус) 1.

Замечания
Макрокоманда DialogBox использует функцию CreateWindowEx, чтобы создать диалоговое окно. Затем DialogBox отправляет сообщение WM_INITDIALOG(и сообщение WM_SETFONT, если шаблон определяет стиль DS_SETFONT) в процедуру диалогового окна. Функция показывает на экране диалоговое окно (независимо от того, определяет ли шаблон стиль WS_VISIBLE), отключает окно владельца, и начинает свой собственный цикл сообщений, чтобы извлекать и распределять сообщения для диалогового окна.
Когда процедура диалогового окна вызывает функцию EndDialog, DialogBox разрушает диалоговое окно, заканчивает цикл сообщений, включает окно владельца (если прежде это было разрешено) и возвращает параметр nResult, заданный процедурой диалогового окна, когда она вызвала EndDialog.

Windows 95: Система может поддерживать максимум 16,364 дескрипторов окна.

Смотри также
CreateDialog, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DialogBoxParam, DialogProc, EndDialog, MAKEINTRESOURCE, WM_INITDIALOG, WM_SETFONT

Размещение и совместимость DialogBox

Windows NT				Да 
Win95					Да 
Win32s					Да 
Импортируемая библиотека			user32.lib 
Заголовочный файл				winuser.h 
Unicode					WinNT 
Замечания по платформе			Не имеется

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