Win32 API. Справочник по диалоговому окну

ОГЛАВЛЕНИЕ

Следующие функции, структуры и сообщения связаны с диалоговым окном.

Функции диалогового окна

Ниже перечислены функции, используемые для создания и управления диалоговыми окнами и органами управления внутри диалоговых окон.

 

Функция CreateDialog

(СоздатьДиалог)

Макрокоманда CreateDialog создает немодальное диалоговое окно из ресурса шаблона блока диалога. Макрокоманда CreateDialog использует функцию CreateDialogParam.

Синтаксис

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

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

Возвращаемые значения
Если функция завершает работу успешно, возвращаемое значение - дескриптор диалогового окна.
Если функция терпит неудачу, возвращаемое значение -ПУСТО (NULL).

Замечания
Функция CreateDialog использует для создания диалогового окна функцию CreateWindowEx. Затем CreateDialog отправляет сообщение WM_INITDIALOG (и сообщение WM_SETFONT, если шаблон определяет стиль DS_SETFONT) в процедуру диалогового окна. Функция показывает блок диалога, если шаблон определяет стиль WS_VISIBLE. В заключение, CreateDialog возвращает дескриптор окна блока диалога.
После того как CreateDialog возвращает значение, прикладная программа показывает диалоговое окно (если оно еще не отображено на экране) при помощи использования функции ShowWindow. Приложение разрушает диалоговое окно, используя функцию DestroyWindow.

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

Смотри также
CreateDialogIndirect, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogBox, DialogProc, ShowWindow, WM_INITDIALOG, WM_SETFONT

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

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

 

Функция CreateDialogIndirect

(СозданиеДиалогаКосвенно)

Макрокоманда CreateDialogIndirect создает немодальное диалоговое окно из шаблона блока диалога в памяти. Макрокоманда CreateDialogIndirect использует функцию CreateDialogIndirectParam.

Синтаксис

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

Параметры
hInstance
Идентифицирует экземпляр модуля, который создает диалоговое окно.
lpTemplate
Указатель на объект глобальной памяти, содержащий шаблон, который CreateDialogIndirect использует для создания диалогового окна. Шаблон диалогового окна состоит из заголовка, который описывает блок диалога, сопровождаемый одним или несколькими дополнительными блоками данных, которые описывают каждый орган управления в диалоговом окне. Шаблон можно использовать или в стандартном или в расширенном формате.
В стандартном шаблоне заголовок - структура DLGTEMPLATE, сопровождаемая дополнительными массивами переменной длины. Данные для каждого органа управления состоят из структуры DLGITEMTEMPLATE, сопровождаемой дополнительными массивами переменной длины.
В расширенном шаблоне диалогового окна, заголовок использует формат DLGTEMPLATEEX, а определения органа управления используют формат DLGITEMTEMPLATEEX.
hWndParent
Идентифицирует окно, которое владеет блоком диалога.
lpDialogFunc
Указывает на процедуру диалогового окна. За более подробной информацией о процедуре диалогового окна обратитесь к статье DialogProc.

Возвращаемые значения
Если функция завершает работу успешно, возвращаемое значение - дескриптор окна блока диалога.
Если функция терпит неудачу, возвращаемое значение ПУСТО (NULL)

Замечания
Макрокоманда CreateDialogIndirect использует функцию CreateWindowEx, чтобы создать диалоговое окно. Затем CreateDialogIndirect отправляет сообщение WM_INITDIALOG в процедуру диалогового окна. Если шаблон определяет стиль DS_SETFONT, то функция к тому же в процедуру диалогового окна отправляет сообщение WM_SETFONT. Функция отображает на экране диалоговое окно в том случае, если шаблон определяет стиль WS_VISIBLE. В конце концов, CreateDialogIndirect возвращает значение дескриптора окна блока диалога.
После того как CreateDialogIndirect возвратит значение, вы можете использовать функцию ShowWindow, чтобы отобразить на экране диалоговое окно (если оно еще не видимое). Чтобы разрушить диалоговое окно, используйте функцию DestroyWindow.
В шаблоне стандартного диалогового окна, в структуре DLGTEMPLATE и в каждой из структур DLGITEMTEMPLATE должно быть сделано выравнивание по границам ДВОЙНОГО СЛОВА (DWORD). Массив данных создания, который следует за структурой DLGITEMTEMPLATE, должен также быть выровнен по границе ДВОЙНОГО СЛОВА (DWORD). Все другие массивы переменной длины в шаблоне должны быть выровненными по границам СЛОВА (WORD).
В расширенном шаблоне диалогового окна заголовок DLGTEMPLATEEX и каждое определение DLGITEMTEMPLATEEX органа управления должны быть выровнены по границам ДВОЙНОГО СЛОВА (DWORD). Массив данных создания, если имеется, который сопровождает структуру DLGITEMTEMPLATEEX, должен также быть выровнен по границам ДВОЙНОГО СЛОВА (DWORD). Все другие массивы переменной длины в шаблоне должны быть выровнены по границам СЛОВА (WORD).
Все символьные строки в шаблоне блока диалога, такие как заголовки диалоговых окон и названия кнопок, должны быть строками Уникода. Чтобы создать код, который работает и в Windows NT и Windows 95, для создания этих строк Уникода используйте функцию MultiByteToWideChar.

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

Смотри также
CreateDialog, CreateDialogIndirectParam, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT

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

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


Функция CreateDialogIndirectParam

(СоздатьДиалогКосвенноПараметрами)

Функция CreateDialogIndirectParam создает немодальный блок диалога из шаблона диалогового окна в памяти. Перед отображением диалогового окна на экране, функция передает определяемое программой значение в процедуру диалогового окна в качестве параметра lParam сообщения WM_INITDIALOG. Прикладная программа может использовать это значение, чтобы инициализировать элементы управления диалогового окна.

Синтаксис

HWND CreateDialogIndirectParam
(
HINSTANCE hInstance, // дескриптор экземпляра прикладной программы
LPCDLGTEMPLATE lpTemplate, // указатель на шаблон блока диалога
HWND hWndParent, // дескриптор окна владельца
DLGPROC lpDialogFunc, // указатель на процедуру диалогового окна
LPARAM lParamInit // инициализационное значение
);

Параметры
hInstance
Идентифицирует экземпляр модуля, который должен создать диалоговое окно.
lpTemplate
Указатель на объект глобальной памяти содержащий шаблон, который использует CreateDialogIndirectParam, чтобы создать диалоговое окно. Шаблон блока диалога состоит из заголовка, который описывает блок диалога, сопровождаемого одним или несколькими дополнительными блоками данных, которые описывают каждый из органов управления в диалоговом окне. Шаблон может использовать или стандартный или расширенный формат.
В стандартном шаблоне заголовок является структурой DLGTEMPLATE, сопровождаемой дополнительными массивами переменной длины. Данные для каждого органа управления состоят из структуры DLGITEMTEMPLATE, сопровождаемой дополнительными массивами переменной длины.
В расширенном шаблоне диалогового окна заголовок использует формат DLGTEMPLATEEX, а определения элемента управления используют формат DLGITEMTEMPLATEEX.
hWndParent
Идентифицирует окно, которое владеет диалоговым окном.
lpDialogFunc
Указывает на процедуру диалогового окна. За подробной информацией о процедуре диалогового окна обратись к статье DialogProc.
lParamInit
Определяет значение, которое передается диалоговому окну в параметре lParam сообщения WM_INITDIALOG.

Возвращаемые значения
Если функция завершила работу успешно, возвращаемое значение - дескриптор окна блока диалога.
Если функция потерпела неудачу, возвращаемое значение ПУСТО (NULL).

Замечания
Функция CreateDialogIndirectParam, чтобы создать диалоговое окно, использует функцию CreateWindowEx. Затем CreateDialogIndirectParam отправляет в процедуру диалогового окна сообщение WM_INITDIALOG. Если шаблон определяет стиль DS_SETFONT, функция к тому же в процедуру диалогового окна отправляет сообщение WM_SETFONT. Функция отображает на экране диалоговое окно в том случае, если шаблон устанавливает стиль WS_VISIBLE. В конце концов, CreateDialogIndirectParam возвращает значение дескриптора окна блока диалога.
После возвращения значения CreateDialogIndirectParam, вы можете использовать функцию ShowWindow, чтобы показать на экране диалоговое окно (если оно ещё не видимое). Чтобы разрушить диалоговое окно, используйте функцию DestroyWindow.
В шаблоне стандартного диалогового окна структура DLGTEMPLATE и каждая из структур DLGITEMTEMPLATE должны быть выровнены по границам ДВОЙНОГО СЛОВА (DWORD). Массив данных создания, который сопровождает структуру DLGITEMTEMPLATE, должен быть также выровнен по границе ДВОЙНОГО СЛОВА (DWORD). Все другие массивы переменной длины в шаблоне должны быть выровнены по границам СЛОВА (WORD).
В шаблоне расширенного диалогового окна заголовок DLGTEMPLATEEX и каждое определение элемента управления DLGITEMTEMPLATEEX должны быть выровнены по границам ДВОЙНОГО СЛОВА (DWORD). Массив данных создания, если он есть, который сопровождает структуру DLGITEMTEMPLATEEX, должен быть также выровнен по границам ДВОЙНОГО СЛОВА (DWORD). Все другие массивы переменной длины в шаблоне должны быть выровнены по границам СЛОВА (WORD).
Все символьные строки шаблона диалогового окна, такие как заголовок блока диалога и надписи кнопок, должны быть строками Уникода. Чтобы создать код, который работает и Windows NT и Windows 95, используйте функцию MultiByteToWideChar для генерации этих строк Уникода.

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

Смотри также
CreateDialog, CreateDialogIndirect, CreateDialogParam, CreateWindowEx, DestroyWindow, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MultiByteToWideChar, ShowWindow, WM_INITDIALOG, WM_SETFONT

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

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


Функция CreateDialogParam

(СоздатьДиалогПоПараметрам)

Функция CreateDialogParam создает немодальное диалоговое окно из шаблона ресурса блока диалога. Перед показом диалогового окна на экране, функция отправляет в процедуру блока диалога определяемое программой значение сообщения WM_INITDIALOG, как параметр lParam. Прикладная программа может использовать это значение, чтобы инициализировать элементы управления диалогового окна.

Синтаксис

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

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

Возвращаемые значения
Если функция завершилась успешно, возвращается значение дескриптор окна блока диалога.
Если функция потерпела неудачу, возвращается значение ПУСТО (NULL).

Замечания
Чтобы создать диалоговое окно, функция CreateDialogParam использует функцию CreateWindowEx. Затем CreateDialogParam отправляет сообщение WM_INITDIALOG (и сообщение WM_SETFONT, если шаблон определяет стиль DS_SETFONT) процедуре диалогового окна. Функция показывает диалоговое окно, если шаблон определяет стиль WS_VISIBLE. В конце концов, CreateDialogParam возвращает дескриптор окна блока диалога.
После того как CreateDialogParam возвращает значение, прикладная программа отображает на экране диалоговое окно (если оно ещё не отображено) используя функцию ShowWindow. Прикладная программа разрушает диалоговое окно, используя функцию DestroyWindow.

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

Смотри также
CreateDialog, CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DestroyWindow, DialogProc, MAKEINTRESOURCE, ShowWindow, WM_INITDIALOG, WM_SETFONT

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

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


Функция DefDlgProc

(ПроцедураДиалоговогоОкнаПоУмолчанию)

Функция DefDlgProc выполняет обработку сообщения по умолчанию вместо оконной процедуры принадлежащей определяемому программой классу диалогового окна.

Синтаксис

LRESULT DefDlgProc
(
HWND hDlg, // дескриптор диалогового окна
UINT Msg, // сообщение
WPARAM wParam, // первый параметр сообщения
LPARAM lParam // второй параметр сообщения
);

Параметры
hDlg
Идентифицирует диалоговое окно.
Msg
Устанавливает номер сообщения
wParam
Устанавливает дополнительную конкретизирующую сообщение информацию.
lParam
Устанавливает дополнительную конкретизирующую сообщение информацию.

Возвращаемые значения
Возвращаемое значение определяет результат обработки сообщения и зависит от отправленного сообщения.

Замечания
Функция DefDlgProc - оконная процедура для предопределенного класса блока диалога. Эта процедура обеспечивает внутреннюю обработку для диалогового окна, отправляя сообщения в процедуру диалогового окна, и выполняя обработку по умолчанию любых сообщений, для которых процедура диалогового окна возвращает значение такое, как ЛОЖЬ (FALSE). Прикладные программы, которые создают пользовательские оконные процедуры для своих пользовательских блоков диалога, часто используют DefDlgProc вместо функции DefWindowProc, чтобы выполнить заданную по умолчанию обработку сообщения.
Прикладные программы создают пользовательские классы диалогового окна, заполняя структуру WNDCLASS соответствующей информацией и регистрируя класс при помощи функции RegisterClass. Некоторые прикладные программы заполняют структуру, используя функцию GetClassInfo, определяя название предопределенного диалогового окна. В таких случаях, прикладные программы изменяют, по крайней мере, член структуры lpszClassName перед регистрацией. Во всех случаях, член cbWndExtra структуры WNDCLASS для пользовательского класса диалогового окна должен быть установлен по крайней мере в DLGWINDOWEXTRA.
Функция DefDlgProc не должна вызваться процедурой диалогового окна; поступив так, вы приведете ее к рекурсивному выполнению. (Примечание переводчика: то есть «подвесите» систему.)

Смотри также
DefWindowProc, GetClassInfo, RegisterClass, WNDCLASS

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

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


Функция 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
Замечания по платформе Не имеется


Функция DialogBoxIndirect

(КосвенныйБлокДиалога)

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

Синтаксис

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

Параметры
hInstance
Идентифицирует экземпляр модуля, который создает блок диалога.
lpTemplate
Указатель на объект глобальной памяти, содержащий шаблон, который DialogBoxIndirect использует, чтобы создать диалоговое окно. Шаблон диалогового окна состоит из заголовка, который описывает блок диалога, сопровождаемого одним или несколькими дополнительными блоками данных, которые описывают каждый элемент управления в диалоговом окне. Шаблон может использовать или стандартный или расширенный формат.
В стандартном шаблоне диалогового окна, заголовок является структурой DLGTEMPLATE, сопровождаемой дополнительными массивами переменной длины. Данные для каждого элемента управления состоят из структуры DLGITEMTEMPLATE, сопровождаемой дополнительным массивом переменой длины.
В расширенном шаблоне диалогового окна заголовок использует формат DLGTEMPLATEEX, а определения элемента управления используют формат DLGITEMTEMPLATEEX.
hWndParent
Идентифицирует окно, которое владеет блоком диалога.
lpDialogFunc
Указатель на процедуру диалогового окна. За большей информацией о процедуре блока диалога обратитесь к статье DialogProc

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

Замечания
Макрокоманда DialogBoxIndirect для создания диалогового окна использует функцию CreateWindowEx. Затем DialogBoxIndirect отправляет сообщение WM_INITDIALOG в процедуру диалогового окна. Если шаблон определяет стиль DS_SETFONT, функция, к тому же, в процедуру диалогового окна передает и сообщение WM_SETFON. Функция показывает на экране диалоговое окно (независимо от того, определяет ли шаблон стиль WS_VISIBLE), блокирует окно владельца и запускает свой собственный цикл сообщений для извлечения и распределения сообщений для диалогового окна.
Когда процедура диалогового окна вызывает функцию EndDialog, DialogBoxIndirect разрушает блок диалога, заканчивает цикл сообщений, разрешает работу окну владельцу (если прежде это было разрешено) и возвращает параметр nResult, определяемый при помощи процедуры диалогового окна, когда она вызвала EndDialog.
В стандартном шаблоне диалогового окна структура DLGTEMPLATE и каждая из структур DLGITEMTEMPLATE, должны быть выровнены по границам ДВОЙНОГО СЛОВА (DWORD). Массив данных создания, который следует за структурой DLGITEMTEMPLATE, должен также быть выровнен по границе ДВОЙНОГО СЛОВА (DWORD).Все другие массивы переменной длины в шаблоне должны быть выровнены по границам СЛОВА (WORD).
В расширенном шаблоне диалогового окна, заголовок DLGTEMPLATEEX и каждое определение DLGITEMTEMPLATEEX органа управления должны быть выровнены по границам ДВОЙНОГО СЛОВА (DWORD). Все другие массивы переменной длины в шаблоне должны быть выровнены по границам СЛОВА (WORD).
Все символьные строки в шаблоне диалогового окна, такие как названия блока диалога и кнопок, должны быть строками Unicode. Чтобы создать код, который работает и в Windows NT и Windows 95, используйте функцию MultiByteToWideChar, чтобы создать эти строки Unicode.

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

Смотри также
CreateWindowEx, DialogBox, DialogBoxIndirectParam, DialogBoxParam, DialogProc, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, EndDialog, MultiByteToWideChar, WM_INITDIALOG, WM_SETFONT

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

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


Функция DialogBoxIndirectParam

(КосвенныйБлокДиалогаСПараметром)

Функция DialogBoxIndirectParam создает модальное диалоговое окно из шаблона блока диалога в памяти. Перед показом диалогового окна на экране, функция передает определяемое программой значение в процедуру диалогового окна как параметр lParam сообщения WM_INITDIALOG. Прикладная программа может использовать это значение для инициализации органов управления диалогового окна.

Синтаксис

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

Параметры
hInstance
Идентифицирует экземпляр модуля, который создает диалоговое окно.
hDialogTemplate
Указатель на объект глобальной памяти, содержащий шаблон, который DialogBoxIndirectParam использует, чтобы создать диалоговое окно. Шаблон блока диалога состоит из заголовка, который описывает диалоговое окно, сопровождаемое одним или несколькими дополнительными блоками данных, которые описывают каждый из органов управления в диалоговом окне. Шаблон может использовать или стандартный или расширенный формат.
В стандартном шаблоне для диалогового окна, заголовком является структура DLGTEMPLATE, сопровождаемая дополнительными массивами переменной длины. Данные для каждого элемента управления состоят из структуры DLGITEMTEMPLATE, сопровождаемой дополнительными массивами переменной длины.
В расширенном шаблоне диалогового окна, заголовок использует формат DLGTEMPLATEEX, а определения органов управления используют формат DLGITEMTEMPLATEEX.
hWndParent
Идентифицирует окно, которое владеет блоком диалога.
lpDialogFunc
Указатель на процедуру диалогового окна. Для получения дополнительной информации о процедуре диалогового окна, см. статью DialogProc.
dwInitParam
Определяет значение, которое передается в диалоговое окно в параметре lParam сообщением WM_INITDIALOG.

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

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

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

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


Функция DialogBoxParam

(ПараметрыБлокаДиалога)

Функция DialogBoxParam создает модальный блок диалога из ресурса шаблона диалогового окна. Перед отображением на экране диалогового окна, функция передает определяемое программой значение в процедуру диалогового окна как параметр lParam сообщения WM_INITDIALOG. Прикладная программа может использовать это значение, чтобы инициализировать элементы управления блока диалога.

Синтаксис

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

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

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

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

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

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

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


Функция DialogProc

(ДиалоговаяПроцедура)

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

Синтаксис

BOOL CALLBACK DialogProc
(
HWND hwndDlg, // дескриптор диалогового окна
UINT uMsg, // сообщение
WPARAM wParam, // первый параметр сообщения
LPARAM lParam // второй параметр сообщения
);

Параметры
hwndDlg
Идентифицирует диалоговое окно.
uMsg
Определяет сообщение.
wParam
Определяет дополнительную конкретизирующую сообщение информацию.
lParam
Определяет дополнительную конкретизирующую сообщение информацию.

Возвращаемые значения
Только в ответ на сообщение WM_INITDIALOG, процедура диалогового окна должна возвратить не нулевое значение, если она обрабатывает сообщение, и нуль, если она этого не делает. В ответ на сообщение WM_INITDIALOG, процедура диалогового окна должна возвратить нуль, если она вызывает функцию SetFocus, чтобы установить фокус в один из органов управления в блоке диалога. Иначе, она должна возвратить значение отличное от нуля, в каждом случае, когда система устанавливает фокус в первом элементе управления диалогового окна, которому можно передать фокус.

Замечания
Вы должны использовать процедуру диалогового окна только тогда, если вы используйте класс диалогового окна для блока диалога. Это – класс, определяемый по умолчанию и используемый тогда, когда класс в шаблоне диалогового окна определен не явно. Несмотря на то, что процедура диалогового окна является двойником оконной процедуры, она не должна вызывать функцию DefWindowProc для обработки нежелательных сообщений.
DialogProc - метка - заместитель для определяемого программой имени функции.

Смотри также
CreateDialog, CreateDialogIndirect, CreateDialogIndirectParam, CreateDialogParam, DefWindowProc, DialogBox, DialogBoxIndirect, DialogBoxIndirectParam, DialogBoxParam, SetFocus, WM_INITDIALOG

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

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


Функция EndDialog

(ЗакончитьДиалог)

Функция EndDialog разрушает модальное диалоговое окно, вынуждая систему закончить любую обработку для блока диалога.

Синтаксис

BOOL EndDialog
(
HWND hDlg, // дескриптор диалогового окна
int nResult // возвращаемое значение
);

Параметры
hDlg
Идентифицирует диалоговое окно, которое будет разрушено.
nResult
Устанавливает значение, которое будет возвращено прикладной программе от функции, которая создавала диалоговое окно.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля.
Если функция не выполняет задачу, возвращаемое значение нулевое.

Замечания
Диалоговые окна, созданные функциями DialogBox, DialogBoxParam, DialogBoxIndirect и DialogBoxIndirectParam должны быть разрушены, при помощи использования функции EndDialog. Прикладная программа вызывает EndDialog изнутри процедуры диалогового окна; функция не должна использоваться для какой-либо другой цели.
Процедура диалогового окна может вызывать EndDialog в любое время, даже в ходе обработки сообщения WM_INITDIALOG. Если ваша прикладная программа вызывает функцию, в то время, когда обрабатывается WM_INITDIALOG, диалоговое окно разрушается до того, как оно покажется и прежде установки в нем фокуса ввода.
EndDialog не разрушает немедленно диалоговое окно. Вместо этого, она устанавливает флажок и позволяет процедуре диалогового окна возвратить управление системе. Система проверяет наличие флажка перед попыткой извлечь следующее сообщение из очереди прикладной программы. Если флажок установлен, система заканчивает цикл сообщений, уничтожает диалоговое окно и использует значение в nResult как возвращаемое значение от функции, которая создавала блок диалога.

Смотри также
DialogBox, DialogBoxIndirect, DialogBoxIndirectParam, DialogBoxParam, WM_INITDIALOG

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

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


Функция GetDialogBaseUnits

(ПолучитьОсновныеЕдиницыИзмеренияБлокаДиалога)

Функция GetDialogBaseUnits возвращает значения базовых единиц измерения блока диалога, которые использует Windows, чтобы создавать диалоговые окна. И Windows, и прикладные программы используют эти единицы измерения, чтобы преобразовывать ширину и высоту диалоговых окон и органов управления в единицы измерения блока диалога, как дано в шаблонах диалогового окна, в пиксели, и наоборот.

Синтаксис

LONG GetDialogBaseUnits(VOID)

Параметры
У этой функции нет параметров.

Возвращаемые значения
Возвращаемое значение является 32-разрядным значением, которое содержит базовые единицы измерения блока диалога. Младшее слово возвращаемого значения содержит базовую единицу измерения диалогового окна по горизонтали, а старшее слово содержит базовую единицу измерения диалогового окна по вертикали.

Замечания
Базовая единица измерения по горизонтали равна средней ширине, в пикселях, символов в системном шрифте; базовая единица измерения по вертикали равна высоте, в пикселях, шрифта. Кроме того, каждая базовая единица измерения по горизонтали равна 4 единицам измерения по горизонтали блока диалога; каждая базовая единица измерения по вертикали равна 8 единицам измерения по вертикали блока диалога. Поэтому, чтобы преобразовывать единицы измерения блока диалога в пиксели, прикладная программа применяет следующие формулы:

пиксельX = (единица диалогаХ * базовая единицаХ) / 4
пиксельY = (единица диалогаY * базовая единицаY) / 4

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

единица диалогаX = (пиксельХ * 4) / базовая единицаХ
единица диалогаY = (пиксельY * 4) / базовая единицаY

Умножение выполнено перед делением, чтобы избежать проблемы округления значения, если базовые единицы измерения не делятся на 4 или 8.

Смотри также
MapDialogRect

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

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


Функция GetDlgCtrlID

(ПлучитьИдентификаторЭлементаУправленияДиалога)

Функция GetDlgCtrlID возвращает значение идентификатора заданного органа управления.

Синтаксис

int GetDlgCtrlID
(
HWND hwndCtl // дескриптор элемента управления
);

Параметры
hwndCtl
Идентифицирует орган управления.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - идентификатор элемента управления.
Если функция не выполняет задачу, возвращаемое значение ПУСТО (NULL). Недопустимое значение параметра hwndCtl, например, заставит функцию потерпеть неудачу.

Замечания
Функция GetDlgCtrlID принимает дескрипторы дочерних окон, а также дескрипторы органов управления в блоках диалога. Прикладная программа устанавливает идентификатор для дочернего окна, когда она создает окно, присваивая значение идентификатора параметру hmenu при вызове функции CreateWindow или CreateWindowEx.
Несмотря на то, что GetDlgCtrlID может возвратить значение, если hwndCtl идентифицирует окно верхнего уровня, окна верхнего уровня не могут иметь идентификаторы, и такое возвращаемое значение никогда не правильно.

Смотри также
CreateWindow, CreateWindowEx, GetDlgItem

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

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


Функция GetDlgItem

(ПолучитьЭлементДиалога)

Функция GetDlgItem извлекает дескриптор органа управления в заданном диалоговом окне.

Синтаксис

HWND GetDlgItem
(
HWND hDlg, // дескриптор диалогового окна
int nIDDlgItem // идентификатор элемента управления
);

Параметры
hDlg
Идентифицирует диалоговое окно, которое содержит орган управления.
nIDDlgItem
Определяет идентификатор элемента управления, который будет возвращен обратно.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - дескриптор окна данного органа управления.
Если функция не выполняет задачу, возвращаемое значение ПУСТО (NULL), который указывает на недопустимый дескриптор диалогового окна или на несуществующий элемент управления.

Замечания
Вы можете использовать функцию GetDlgItem с любой парой окон родитель - дочь, а не только с блоками диалога. Пока параметр hDlg определяет родительское окно, а дочернее окно имеет уникальный идентификатор (определяемый параметром hMenu в функции CreateWindow или CreateWindowEx, которая создавала дочернее окно), GetDlgItem возвращает правильный дескриптор дочернему окну.

Смотри также
CreateWindow, CreateWindowEx, GetDlgItemInt, GetDlgItemText

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

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

 

Функция GetDlgItemInt

(ПолучитьЦелочисленноеЗначениеЭлементаДиалога)

Функция GetDlgItemInt переводит текст заданного органа управления в блоке диалога в целочисленное значение.

Синтаксис

UINT GetDlgItemInt
(
HWND hDlg, // дескриптор диалогового окна
int nIDDlgItem, // идентификатор элемента управления
BOOL *lpTranslated, // указывает на переменную, которая принимает
// индикатор успешного завершения/неудачи
BOOL bSigned // определяет со знаком ли значение или без знака
);

Параметры
hDlg
Дескриптор диалогового окна, которое содержит представляющий интерес орган управления.
nIDDlgItem
Идентификатор элемента блока диалога, который определяет орган управления, текст которого должен быть преобразован.
lpTranslated
Указывает на Булеву переменную, которая принимает значение функции успешного завершения / неудачи. Значение ИСТИНА (TRUE) указывает на успешное завершение, значение ЛОЖЬ(FALSE) указывает на неудачу.
Этот параметр необязательный: он может быть значением ПУСТО (NULL). В этом случае, функция не возвращает информации об успехе или неудаче.
bSigned
Определяет, должна ли функция сначала проверять текст на знак "минус" и возвращать значение целого числа со знаком, если она находит его. Значение ИСТИНА (TRUE) устанавливает, что это должно быть сделано, ЛОЖЬ (FALSE), что этого делать не надо.

Возвращаемые значения
Если функция завершается успешно, переменная, указанная в lpTranslated устанавливается в значение ИСТИНА (TRUE), а возвращаемое значение – в преобразованное значение текста органа управления.
Если функция не выполняет задачу, переменная, указанная в lpTranslated устанавливается в значение ЛОЖЬ(FALSE), а возвращаемое значение нулевое. Обратите внимание, что, так как нуль - возможное значение после преобразования, возвращаемое значение нуль сам по себе не указывает на неудачу.
Если lpTranslated значение ПУСТО (NULL), функция не возвращает никакой информации относительно успеха или неудачи.
Если параметр bSigned имеет значение ИСТИНА (TRUE), то определяет, что значение, которое будет возвращено обратно, является значением целого числа со знаком и приводит возвращаемое значение к типу int.

Замечания
Функция GetDlgItemInt извлекает текст данного органа управления, отправляя элементу управления сообщение WM_GETTEXT. Функция преобразует извлеченный текст, очищая его от любых дополнительных пробелов в начале текста, а затем преобразует в десятичные цифры. Функция останавливает преобразование тогда, когда она достигает конца текста или сталкивается с нечисловым символом.
Если параметр bSigned имеет значение ИСТИНА (TRUE), функция GetDlgItemInt проверяет знак "минус" (-) в начале текста и преобразует текст в значение целого числа со знаком. Иначе, функция создает значение целого числа без знака.
Функция GetDlgItemInt возвращает значение нуль, если преобразованное значение большее, чем INT_MAX (для знаковых чисел) или UINT_MAX (для чисел без знака).

Смотри также
GetDlgCtrlID, GetDlgItem, GetDlgItemText, SetDlgItemInt

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

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


Функция GetDlgItemText

(ПолучитьТекстЭлементаДиалога)

Функция GetDlgItemText извлекает заголовок или текст, связанный с органом управления в диалоговом окне.

Синтаксис

UINT GetDlgItemText
(
HWND hDlg, // дескриптор диалогового окна
int nIDDlgItem, // идентификатор элемента управления
LPTSTR lpString, // адрес буфера для текста
int nMaxCount // максимальная длина строки
);

Параметры
hDlg
Идентифицирует диалоговое окно, которое содержит орган управления.
nIDDlgItem
Определяет идентификатор элемента управления, заголовок или текст которого должен быть извлечен.
lpString
Указывает на буфер, куда надо передать заголовок или текст.
nMaxCount
Определяет максимальную длину, в символах, строки, которая будет скопирована в буфер, указанный параметром lpString. Если длина строки превышает установленное ограничение, строка обрезается.

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

Замечания
Функция GetDlgItemText отправляет в орган управления сообщение WM_GETTEXT

Смотри также
GetDlgItemInt, SetDlgItemInt, SetDlgItemText, WM_GETTEXT

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

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

 

Функция GetNextDlgGroupItem

(ПолучитьЭлементСледующейГруппыДиалога)

Функция GetNextDlgGroupItem извлекает дескриптор первого органа управления в группе элементов управления, которая предшествует (или следует за) заданному органу управления в диалоговом окне.

Синтаксис

HWND GetNextDlgGroupItem
(
HWND hDlg, // дескриптор диалогового окна
HWND hCtl, // дескриптор элемента управления
BOOL bPrevious // флажок направления
);

Параметры
hDlg
Идентифицирует диалоговое окно, где производится поиск.
hCtl
Идентифицирует орган управления, который будет использован как начальная точка для поиска. Если этот параметр является значением ПУСТО (NULL), функция использует последний (или первый) элемент управления диалогового окна как отправной пункт для поиска.
bPrevious
Определяет, как функция должна искать группу органов управления в диалоговом окне. Если этот параметр - ИСТИНА (TRUE), функция осуществляет поиск от предыдущего элемента управления в группе. Если он - ЛОЖЬ(FALSE), функция осуществляет поиск от следующего органа управления в группе.

Возвращаемые значения
Если GetNextDlgGroupItem завершается успешно, возвращаемое значение - дескриптор предыдущего (или следующего) элемента управления в группе органов управления.

Замечания
Функция GetNextDlgGroupItem ищет органы управления по порядку (или в обратном порядке), как они были созданы в шаблоне диалогового окна. Первый элемент управления в группе должен иметь стиль WS_GROUP; все другие органы управления в группе, должны быть созданы последовательно за ним и не должны иметь стиля WS_GROUP.
Когда найден предыдущий элемент управления, функция возвращает значение первого, обнаруженного ею органа управления, который является видимым и не заблокированным. Если элемент управления, заданный параметром hCtl имеет стиль WS_GROUP, функция временно изменяет направление поиска, чтобы обнаружить первый орган управления, имеющий WS_GROUP стиль, затем продолжает поиск в первоначальном направлении, возвращая значение обнаруженного ею первого элемента управления, который является видимым и не заблокированным, или возвращает значение hwndCtrl если такой элемент управления не найден.
Когда найден следующий элемент управления, функция возвращает значение первого обнаруженного ею органа управления, который является видимым и не заблокированным, но не имеет стиля WS_GROUP. Если она обнаруживает элементом управления, имеющий стиль WS_GROUP, функция изменяет направление поиска, обнаруживает первый орган управления, имеющий стиль WS_GROUP и возвращает значение этого элемента управления, если он видим и не заблокирован. Иначе, функция возобновляет поиск в первоначальном направлении и возвращает значение обнаруженного ею первого элемента управления, который является видимым и не заблокированным, или возвращает значение hCtl, если такой орган управления не найден.

Смотри также
GetNextDlgTabItem

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

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


Функция GetNextDlgTabItem

(ПолучитьСледующийЭлементДиалогаТабуляцией)

Функция GetNextDlgTabItem извлекает дескриптор первого органа управления, который имеет стиль WS_TABSTOP и предшествует (или следует) заданному элементу управления.

Синтаксис

HWND GetNextDlgTabItem
(
HWND hDlg, // дескриптор блока диалога
HWND hCtl, // дескриптор известного элемента управления
BOOL bPrevious // флажок направления
);

Параметры
hDlg
Идентифицирует диалоговое окно, в котором будет производиться поиск.
hCtl
Идентифицирует орган управления, который будет использован как исходная точка для поиска. Если этот параметр имеет значение ПУСТО (NULL), функция использует последний (или первый) элемент управления в диалоговом окне как исходную точку для поиска.
bPrevious
Определяет, как функция должна искать в диалоговом окне. Если этот параметр - ИСТИНА (TRUE), функция ищет предыдущий элемент управления в блоке диалога. Если этот параметр - ЛОЖЬ(FALSE), функция ищет следующий орган управления в диалоговом окне.

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

Замечания
Функция GetNextDlgTabItem ищет элементы управления по порядку (или в обратном порядке), в котором они были созданы в шаблоне диалогового окна. Функция возвращает значение расположенного в нем первого органа управления, который является видимым, не заблокированным и имеет стиль WS_TABSTOP. Если такого элемент управления не существует, функция возвращает значение hCtl.

Смотри также
GetDlgItem, GetNextDlgGroupItem

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

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

 

Функция IsDialogMessage

(СообщениеДиалога)

Функция IsDialogMessage определяет, не предназначено ли сообщение для заданного блока диалога и, если это так, обрабатывает сообщение.

Синтаксис

BOOL IsDialogMessage
(
HWND hDlg, // дескриптор диалогового окна
LPMSG lpMsg // адрес структуры с сообщением
);

Параметры
hDlg
Идентифицирует диалоговое окно.
lpMsg
Указывает на структуру MSG, которая содержит сообщение, которое будет проверено.

Возвращаемые значения
Если сообщение было обработано, возвращаемое значение отлично от нуля.
Если сообщение не было обработано, возвращаемое значение нулевое.

Замечания
Несмотря на то, что функция IsDialogMessage предназначена для немодальных блоков диалога, Вы можете использовать ее с любым окном, которое содержит органы управления, дающие возможность окнам предусматривать тот же самый расклад клавиатуры, который используется в диалоговом окне.
Когда IsDialogMessage обрабатывает сообщение, она проверяет сообщения для клавиатуры и преобразовывает их в команды выбора для соответствующего диалогового окна. Например, когда нажата клавиша табуляции TAB, происходит выбор следующего органа управления или группы элементов управления, а когда нажата клавиша стрелка "вниз" DOWN ARROW, происходит выбор следующего элемента управления в группе.
Поскольку функция IsDialogMessage исполняет все необходимые преобразования и диспетчеризацию сообщений, сообщение, обработанное IsDialogMessage, нельзя передавать в функции TranslateMessage или DispatchMessage.
IsDialogMessage отправляет сообщения WM_GETDLGCODE процедуре диалогового окна, чтобы определить, какие клавиши должны быть обработаны.
IsDialogMessage может отправлять в окно сообщения DM_GETDEFID и DM_SETDEFID. Эти сообщения определены в заголовочном файле WINUSER.H как WM_USER и WM_USER + 1, так что возможны конфликты с определяемыми программой сообщениями, имеющими те же самые значения.

Смотри также
DispatchMessage, DM_GETDEFID, DM_SETDEFID, MSG, TranslateMessage, WM_GETDLGCODE, WM_USER

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

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


Функция MapDialogRect

(ПреобразоватьПрямоугольникДиалога)

Функция MapDialogRect конвертирует (преобразует) заданные единицы измерения диалогового окна в экранные единицы (пиксели). Функция заменяет координаты в заданной структуре RECT преобразованными координатами, которые позволяют структуре быть использованной, чтобы создать диалоговое окно или установить орган управления в пределах блока диалога.

Синтаксис

BOOL MapDialogRect
(
HWND hDlg, // дескриптор диалогового окна
LPRECT lpRect // адрес структуры с прямоугольником
);

Параметры
hDlg
Идентифицирует диалоговое окно. Эта функция реагирует только на дескрипторы для блоков диалога, созданные одной из функций создания диалогового окна; дескрипторы для других окон не допустимы.
lpRect
Указывает на структуру RECT содержащую координаты диалогового окна, которые будут преобразованы.

Возвращаемые значения
Если функция завершилась успешно, возвращается значение отличное от нуля.
Если функция потерпела неудачу, возвращаемое значение - ноль.

Замечания
Функция MapDialogRect предполагает, что начальные координаты в структуре RECT представляют единицы измерения диалогового окна. Чтобы преобразовать эти координаты из единиц измерения блока диалога в пиксели, функция извлекает данные о текущих базовых единицах по горизонтали и вертикали для диалогового окна, а затем применяет следующие формулы:

левая     = (левая   * базовая единица X) / 4
правая = (правая * базовая единица X) / 4
верхняя = (верхняя * базовая единица Y) / 8
нижняя = (нижняя * базовая единица Y) / 8

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

Смотри также
CreateDialog, CreateDialogIndirect, CreateDialogIndirectParam, CreateDialogParam, DialogBox, DialogBoxIndirect, DialogBoxIndirectParam, DialogBoxParam, GetDialogBaseUnits, RECT

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

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

 

Функция MessageBox

(ОкноСообщения)

Функция MessageBox создает, отображает на экране и оперирует окном сообщений. Окно сообщений содержит определяемое программой сообщение и заголовок, плюс любую комбинацию предопределенных пиктограмм и командных кнопок.

Синтаксис

int MessageBox
(
HWND hWnd, // дескриптор окна владельца
LPCTSTR lpText, // адрес текста в окне сообщений
LPCTSTR lpCaption, // адрес заголовка в окне сообщений
UINT uType // стиль окна сообщений
);

Параметры
hWnd
Идентифицирует окно владельца блока сообщений, которым оно было создано. Если этот параметр имеет значение ПУСТО (NULL), у блока сообщения нет окна владельца.
lpText
Указывает на строку с символом нуля в конце, содержащую сообщение, которое должно быть отражено на экране.
lpCaption
Указывает на строку с символом нуля в конце, используемую для заголовка диалогового окна. Если этот параметр значение ПУСТО (NULL), то по умолчанию используется заголовок Ошибка (Error).
uType
Определяет установку битов флажков, которые обуславливают содержание и поведение диалогового окна. Этот параметр может быть комбинацией флажков из ниже следующих групп флажков.
Определите один из следующих флажков, чтобы указать кнопки, содержащиеся в окне сообщений:

  • MB_ABORTRETRYIGNORE - Окно сообщение содержит три командных кнопки: Прервать (Abort), Повторить (Retry) и Проигнорировать (Ignore).
  • MB_OK - Окно сообщение содержит одну командную кнопку: OK. Это по умолчанию.
  • MB_OKCANCEL - Окно сообщение содержит две командных кнопки: OK и Отменить (Cancel).
  • MB_RETRYCANCEL - Окно сообщение содержит две командных кнопки: Повторить (Retry) и Отменить (Cancel).
  • MB_YESNO - Окно сообщение содержит две командных кнопки: Да (Yes) и Нет (No).
  • MB_YESNOCANCEL - Окно сообщение содержит три командных кнопки: Да (Yes), Нет (No) и Отменить (Cancel).

Определите один из следующих флажков, чтобы отобразить пиктограмму в окне сообщений:

  • MB_ICONEXCLAMATION, MB_ICONWARNING - В окне сообщений появляется пиктограмма восклицательного знака.
  • MB_ICONINFORMATION, MB_ICONASTERISK - В окне сообщений появляется пиктограмма, состоящая из символа i нижнего регистра в круге.
  • MB_ICONQUESTION - В окне сообщений появляется пиктограмма в виде знака вопроса.
  • MB_ICONSTOP,MB_ICONERROR,MB_ICONHAND - В окне сообщений появляется пиктограмма в виде стоп-сигнала.

Определите один из следующих флажков, чтобы указать заданную по умолчанию кнопку:

  • MB_DEFBUTTON1 - Первая кнопка - основная кнопка. MB_DEFBUTTON1 - значение по умолчанию, если не определена кнопка MB_DEFBUTTON2, MB_DEFBUTTON3 или MB_DEFBUTTON4.
  • MB_DEFBUTTON2 - Вторая кнопка - основная кнопка.
  • MB_DEFBUTTON3 - Третья кнопка - основная кнопка.
  • MB_DEFBUTTON4 - Четвертая кнопка - основная кнопка.

Определите один из следующих флажков, чтобы указать модальность диалогового окна:

  • MB_APPLMODAL - Пользователь должен ответить окну сообщений перед продолжением работы в окне, которое идентифицировано параметром hWnd. Однако, пользователь может перемещаться в окнах других прикладных программ и работать в этих окнах.В зависимости от иерархии окон в прикладной программе, пользователь может получить возможность, чтобы перемещаться в другие окна в пределах прикладной программы. Все дочерние окна родителя окна сообщений автоматически блокируются, однако выскакивающие окна - нет.MB_APPLMODAL - значение по умолчанию, если не определен флажок, ни MB_SYSTEMMODAL, ни MB_TASKMODAL.
  • MB_SYSTEMMODAL - То же самое, что и MB_APPLMODAL за исключением того, что окно сообщений имеет стиль WS_EX_TOPMOST. Используйте системно - модальные окна сообщений, чтобы уведомлять пользователя о серьезных, потенциально опасных ошибках, которые требуют немедленного внимания (например, запуск программы при нехватке памяти). Этот флажок не имеет никакого влияния на способность пользователя взаимодействовать с другими окнами, а не те, которые связаны с hWnd.
  • MB_TASKMODAL - То же самое, что и MB_APPLMODAL за исключением того, что все окна верхнего уровня, принадлежащие текущей задаче, заблокированы, если параметр hWnd имеет значение ПУСТО (NULL). Используйте этот флажок, когда вызывающая прикладная программа или библиотека не имеют доступного дескриптора окна, но все еще должны сохранять вводимые данные для других окон в текущей прикладной программе без приостановки работы других прикладных программ.

В дополнение, вы можете устанавливать ниже перечисленные флажки:
MB_DEFAULT_DESKTOP_ONLY
Рабочий стол, в настоящее время принимающий ввод, должен быть заданным по умолчанию рабочим столом; иначе, функция не выполняет задачу. Заданный по умолчанию рабочий стол - первая запущенная прикладная программа, после того, как пользователь вошел в систему.
MB_HELP
Прибавляет кнопку Справка (Help) в окно сообщений. Выбор кнопки Help или нажатие F1 генерирует событие появления Справки.
MB_RIGHT
Выравнивание текста справа.
MB_RTLREADING
Отображает на экране сообщение и текст заголовка с использованием порядка зеркального отображения для Еврейских и Арабских систем письменности.
MB_SETFOREGROUND
Окно сообщений становится приоритетным окном. Внутри Windows для окна сообщений вызывает функцию SetForegroundWindow.
MB_TOPMOST
Окно сообщений создается со стилем окна WS_EX_TOPMOST.
MB_SERVICE_NOTIFICATION
Только для Windows NT: вызывающая программа является обслуживающей по уведомлению пользователя о событии. Функция отображает окно сообщений на текущем активном рабочем столе, даже если никто из пользователей не вошел в систему компьютера.
Если этот флажок установлен, параметр hWnd должен иметь значение ПУСТО (NULL). Это такое окно сообщений, которое может появляться на другом рабочем столе, а не только на том, которое соответствует Wnd.
Для Windows NT версии 4.0, значение MB_SERVICE_NOTIFICATION изменилось. См. WINUSER.H для старых и новых значений. Windows NT 4.0 обеспечивает совместимость вниз для существующих ранее услуг, при помощи преобразования данных старых значений в новых значениях при реализации MessageBox и MessageBoxEx. Это преобразование данных делается только для исполнимых программ (.exe), которые имеют номер версии, как установлено компоновщиком, меньше чем 4.0.

Чтобы сформировать обслуживание, которое использует MB_SERVICE_NOTIFICATION и возможность запускать, и Windows NT 3.x и Windows NT 4.0, Вы имеете два пути:

  1. Во время компоновки, определите номер версии меньше чем 4.0; или
  2. Во время компоновки, определите версию 4.0.
Во время запуска, используйте функцию GetVersionEx, чтобы проверить системную версию. Тогда при продолжении запуска Windows NT 3.x, используйте MB_SERVICE_NOTIFICATION_NT3X; а для Windows NT 4.0, используйте MB_SERVICE_NOTIFICATION.
MB_SERVICE_NOTIFICATION_NT3X
Только для Windows NT: Это значение соответствует значению, определенному для MB_SERVICE_NOTIFICATION для версии 3.51 Windows NT.

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

  • IDABORT - Была выбрана кнопка Прервать (Abort).
  • IDCANCEL - Была выбрана кнопка Отменить (Cancel).
  • IDIGNORE - Была выбрана кнопка Игнорировать (Ignore).
  • IDNO - Была выбрана кнопка Нет (No).
  • IDOK - Была выбрана кнопка OK.
  • IDRETRY - Была выбрана кнопка Повторить (Retry).
  • IDYES - Была выбрана кнопка Да (Ye).

Если окно сообщений имеет кнопку Отменить (Cancel), функция возвращает значение IDCANCEL тогда, если или нажата клавиша ESC, или выбрана кнопка Cancel. Если у окна сообщений нет кнопки Cancel, нажатие на ESC не имеет никакого эффекта.

Смотри также
FlashWindow, MessageBeep, MessageBoxEx, MessageBoxIndirect, SetForegroundWindow

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

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


Функция MessageBoxEx

(ОкноСообщенийРасширенное)

Функция MessageBoxEx создает, отображает на экране и оперирует окном сообщений. Окно сообщений содержит определяемое программой сообщение и заголовок, плюс любую комбинацию предопределенных пиктограмм и командных кнопок. Параметр wLanguageId определяет, какой устанавливается ресурс языка, который используется для предопределенных командных кнопок. Полное описание других параметров MessageBoxEx, см. MessageBox.

Синтаксис

int MessageBoxEx
(
HWND hWnd, // дескриптор окна владельца
LPCTSTR lpText, // адрес текста в окне сообщений
LPCTSTR lpCaption, // адрес заголовка в окне сообщений
UINT uType // стиль окна сообщений
WORD wLanguageId // идентификатор языка
);

Параметры
hWnd
Идентифицирует окно владельца блока сообщений, которым оно было создано. Если этот параметр имеет значение ПУСТО (NULL), у блока сообщения нет окна владельца.
lpText
Указывает на строку с символом нуля в конце, содержащую сообщение, которое должно быть отражено на экране.
lpCaption
Указывает на строку с символом нуля в конце, используемую для заголовка диалогового окна. Если этот параметр значение ПУСТО (NULL), то по умолчанию используется заголовок Ошибка (Error).
uType
Определяет установку битов флажков, которые обуславливают содержание и поведение диалогового окна. Этот параметр может быть комбинацией флажков из ниже следующих групп флажков.
Определите один из следующих флажков, чтобы указать кнопки, содержащиеся в окне сообщений:

  • MB_ABORTRETRYIGNORE - Окно сообщение содержит три командных кнопки: Прервать (Abort), Повторить (Retry) и Проигнорировать (Ignore).
  • MB_OK - Окно сообщение содержит одну командную кнопку: OK. Это по умолчанию.
  • MB_OKCANCEL - Окно сообщение содержит две командных кнопки: OK и Отменить (Cancel).
  • MB_RETRYCANCEL - Окно сообщение содержит две командных кнопки: Повторить (Retry) и Отменить (Cancel).
  • MB_YESNO - Окно сообщение содержит две командных кнопки: Да (Yes) и Нет (No).
  • MB_YESNOCANCEL - Окно сообщение содержит три командных кнопки: Да (Yes), Нет (No) и Отменить (Cancel).

Определите один из следующих флажков, чтобы отобразить иконку в окне сообщений:

  • MB_ICONEXCLAMATION, MB_ICONWARNING - В окне сообщений появляется пиктограмма восклицательного знака.
  • MB_ICONINFORMATION, MB_ICONASTERISK - В окне сообщений появляется пиктограмма, состоящая из символа i нижнего регистра я в круге.
  • MB_ICONQUESTION - В окне сообщений появляется пиктограмма в виде знака вопроса.
  • MB_ICONSTOP,MB_ICONERROR,MB_ICONHAND - В окне сообщений появляется пиктограмма в виде стоп-сигнала.

Определите один из следующих флажков, чтобы указать заданную по умолчанию кнопку:

  • MB_DEFBUTTON1 - Первая кнопка - основная кнопка. MB_DEFBUTTON1 - значение по умолчанию, если не определена кнопка MB_DEFBUTTON2, MB_DEFBUTTON3 или MB_DEFBUTTON4.
  • MB_DEFBUTTON2 - Вторая кнопка - основная кнопка.
  • MB_DEFBUTTON3 - Третья кнопка - основная кнопка.
  • MB_DEFBUTTON4 - Четвертая кнопка - основная кнопка.

Определите один из следующих флажков, чтобы указать модальность диалогового окна:

  • MB_APPLMODAL - Пользователь должен ответить окну сообщений до продолжения работы в окне, которое идентифицировано параметром hWnd. Однако, пользователь может перемещаться в окнах других прикладных программ и работать в этих окнах. В зависимости от иерархии окон в прикладной программе, пользователь может получить возможность, чтобы перемещаться в другие окна в пределах прикладной программы. Все дочерние окна родителя окна сообщений автоматически блокируются, но всплывающие окна - нет. MB_APPLMODAL - значение по умолчанию, если не определен флажок ни MB_SYSTEMMODAL ни MB_TASKMODAL.
  • MB_SYSTEMMODAL - То же самое, что и MB_APPLMODAL за исключением того, что окно сообщений имеет стиль WS_EX_TOPMOST. Используйте системно - модальные окна сообщений, чтобы уведомить пользователя о серьезных, потенциально опасных ошибках, которые требуют немедленного внимания (например, запуск программы при нехватке памяти). Этот флажок не имеет никакого влияния на способность пользователя взаимодействовать с другими окнами, чем те, которые связаны с hWnd.
  • MB_TASKMODAL - То же самое, что и MB_APPLMODAL за исключением того, что все окна верхнего уровня, принадлежащие текущей задаче, заблокированы, если параметр hWnd имеет значение ПУСТО (NULL). Используйте этот флажок, когда вызывающая прикладная программа или библиотека не имеют доступного дескриптора окна, но все еще должно сохранять вводимые данные для других окон в текущей прикладной программе без приостановки работы других прикладных программ.

В дополнение, вы можете устанавливать ниже перечисленные флажки:
MB_DEFAULT_DESKTOP_ONLY
Рабочий стол, в настоящее время принимающий ввод должен быть заданным по умолчанию рабочим столом; иначе, функция не выполняет задачу. Заданный по умолчанию рабочий стол - первая запущенная прикладная программа, после того, как пользователь вошел в систему.
MB_HELP
Прибавляет кнопку Справка (Help) в окно сообщений. Выбор кнопки Help или нажатие F1 генерирует событие появления Справки.
MB_RIGHT
Выравнивание текста справа.
MB_RTLREADING
Отображает на экране сообщение и текст заголовка с использованием порядка зеркального отображения для Еврейских и Арабских систем письменности.
MB_SETFOREGROUND
Окно сообщений становится приоритетным окном. Внутри, Windows для окна сообщений вызывает функцию SetForegroundWindow.
MB_TOPMOST
Окно сообщений создается со стилем окна WS_EX_TOPMOST.
MB_SERVICE_NOTIFICATION
Только для Windows NT: вызывающая программа является обслуживающей по уведомлению пользователя о событии. Функция отображает окно сообщений на текущем активном рабочем столе, даже если никто из пользователей не вошел в систему компьютера.
Если этот флажок установлен, параметр hWnd должен иметь значение ПУСТО (NULL). Это такое окно сообщений, которое может появляться на другом рабочем столе, а не только на том, которое соответствует hWnd.
Для Windows NT версии 4.0, значение MB_SERVICE_NOTIFICATION изменилось. См. WINUSER.H для старых и новых значений. Windows NT 4.0 обеспечивает совместимость вниз для существующих ранее услуг, при помощи отображения старых значений в новых значениях при реализации MessageBox и MessageBoxEx. Это отображение сделано только для исполнимых программ (.exe), которые имеют номер версии, как установлено компоновщиком, меньше чем 4.0.
Чтобы сформировать обслуживание, которое использует MB_SERVICE_NOTIFICATION и возможность запускать, и Windows NT 3.x и Windows NT 4.0, Вы имеете два пути.
1. Во время компоновки, определите номер версии меньше чем 4.0; или
2. Во время компоновки, определите версию 4.0. В во время запуска, используйте функцию GetVersionEx, чтобы проверить системную версию. Тогда при продолжении запуска Windows NT 3.x, используйте MB_SERVICE_NOTIFICATION_NT3X; а для Windows NT 4.0, используйте MB_SERVICE_NOTIFICATION.
MB_SERVICE_NOTIFICATION_NT3X
Только для Windows NT: Это значение соответствует значению, определенному для MB_SERVICE_NOTIFICATION для версии 3.51 Windows NT.

wLanguageId
Определяет язык, на котором будет отображаться текст, содержащийся в предопределенных командных кнопках. Это значение должно быть в форме, возвращающей макрокомандой MAKELANGID.
За перечнем идентификаторов языка, поддерживаемых Win32, см. Идентификаторы Языка. Обратите внимание, что каждый привязанный к конкретной стране выпуск Windows обычно содержит ресурсы только для ограниченного набора языков. Таким образом, например, американская версия предлагает LANG_ENGLISH, французская версия предлагает LANG_FRENCH, немецкая версия предлагает LANG_GERMAN и японская версия предлагает LANG_JAPANESE. Каждая версия предлагает LANG_NEUTRAL. Это ограничивает установку значений, которые могут использоваться с параметром wLanguageId. Перед определением идентификатора языка, Вы должны перечислить территории, которые установлены на системе.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - значение элемента меню отличное от нуля, возвращенное диалоговым окном:

  • IDABORT - Была выбрана кнопка Прервать (Abort).
  • IDCANCEL - Была выбрана кнопка Отменить (Cancel).
  • IDIGNORE - Была выбрана кнопка Игнорировать (Ignore).
  • IDNO - Была выбрана кнопка Нет (No).
  • IDOK - Была выбрана кнопка OK.
  • IDRETRY - Была выбрана кнопка Повторить (Retry).
  • IDYES - Была выбрана кнопка Да (Ye).

Если окно сообщений имеет кнопку Отменить (Cancel), функция возвращает значение IDCANCEL тогда, когда или нажата клавиша ESC, или выбрана кнопка Cancel. Если у окна сообщений нет кнопки Cancel, нажатие на ESC не имеет никакого эффекта.

Замечания
Когда Вы используете системно - модальное окно сообщений, чтобы указать, что система имеет мало памяти, строки, переданные как параметры lpText и lpCaption не должны быть приняты из файла ресурса, так как попытка загрузить ресурс может потерпеть неудачу.
Когда прикладная программа вызывает MessageBoxEx и устанавливает флажки MB_ICONHAND и MB_SYSTEMMODAL в параметре uType, Win32 API отображает на экране законченное окно сообщений независимо от доступной памяти. Когда эти флажки установлены, Windows ограничивает длину текста окна сообщений до одной строки.
Если Вы создаете окно сообщений, в то время когда присутствует диалоговое окно, дескриптор блока диалога используется как параметр hWnd. Параметр hWnd не должен идентифицировать дочернее окно, типа диалогового окна.
Windows 95: Система может поддерживать максимум 16,364 дескрипторов окна.

Смотри также
MAKELANGID, MessageBeep, MessageBox, MessageBoxIndirect, SetForegroundWindow

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

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


Функция SendDlgItemMessage

(ПередатьСообщениеЭлементуДиалоговогоОкна)

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

Синтаксис

LONG SendDlgItemMessage
(
HWND hDlg, // дескриптор диалогового окна
int nIDDlgItem, // идентификатор элемента управления
UINT Msg, // сообщение для передачи
WPARAM wParam, // первый параметр сообщения
LPARAM lParam // второй параметр сообщения
);

Параметры
hDlg
Идентифицирует диалоговое окно, которое содержит орган управления.
nIDDlgItem
Определяет идентификатор органа управления, который принимает сообщение.
Msg
Определяет сообщение, которое будет отправлено.
wParam
Определяет дополнительную конкретизирующую сообщение информацию.
lParam
Определяет дополнительную конкретизирующую сообщение информацию.

Возвращаемые значения
Возвращаемое значение определяет результат обработки сообщения и зависит от переданного сообщения.

Замечания
Функция SendDlgItemMessage не возвращает значение до тех пор, пока сообщение не будет обработано.
Использование SendDlgItemMessage идентично извлечению дескриптора заданного элемента управления и вызова функции SendMessage.

Смотри также
SendMessage

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

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


Функция SetDlgItemInt

(УстановитьЦелочисленныеЗначенияЭлементаДиалоговогоОкна)

Функция SetDlgItemInt устанавливает текст органа управления в диалоговом окне, которое представлено строкой определенных целочисленных значений.

Синтаксис

BOOL SetDlgItemInt
(
HWND hDlg, // дескриптор диалогового окна
int nIDDlgItem, // идентификатор элемента управления
UINT uValue, // значения для установки
BOOL bSigned // индикатор знакового и без знакового значения
);

Параметры
hDlg
Идентифицирует диалоговое окно, который содержит орган управления.
nIDDlgItem
Определяет элемент управления, который должен быть изменен.
uValue
Устанавливает целочисленное значение, использующееся для создания элемента текста.
bSigned
Определяет, со знаком или без знака параметр uValue. Если этот параметр - ИСТИНА (TRUE), uValue со знаком. Если этот параметр - ИСТИНА (TRUE) и uValue - меньше чем нуль, знак "минус" помещается перед первой цифрой в строке. Если этот параметр - ЛОЖЬ(FALSE), uValue без знака.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля.
Если функция потерпела неудачу, возвращаемое значение - нуль. Чтобы получить подробную информацию об ошибке, вызовите GetLastError.

Замечания
Чтобы установить новый текст, эта функция отправляет сообщение WM_SETTEXT заданному органу управления.

Смотри также
GetDlgItemInt, SetDlgItemText, WM_SETTEXT

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

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

 

Функция SetDlgItemText

(УстановитьТекстЭлементаДиалоговогоОкна)

Функция SetDlgItemText устанавливает заголовок или текст органа управления в диалоговом окне.

Синтаксис

BOOL SetDlgItemText
(
HWND hDlg, // дескриптор диалогового окна
int nIDDlgItem, // идентификатор элемента управления
LPCTSTR lpString // текст для установки
);

Параметры
hDlg
Идентифицирует диалоговое окно, которое содержит элемент управления.
nIDDlgItem
Идентифицирует орган управления с заголовком или текстом, который должен быть установлен.
lpString
Указывает на строку с символом нуля в конце, которая содержит текст для копирования в орган управления.

Возвращаемые значения
Если функция завершается успешно, возвращаемое значение отлично от нуля.
Если функция терпит неудачу, возвращаемое значение - нуль. Чтобы получить подробную информацию об ошибке, вызовитеGetLastError.

Замечания
Функция SetDlgItemText отправляет сообщение WM_SETTEXT заданному органу управления.

Смотри также
GetDlgItemInt, GetDlgItemText, SetDlgItemInt, WM_SETTEXT

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

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


Функция MessageBoxIndirect

(КосвенноеОкноСообщений)

[Теперь поддерживается в Windows NT]

Функция MessageBoxIndirect создает, отображает и оперирует окном сообщений. Окно сообщений содержит определяемый программой текст сообщения и заголовок, любую пиктограмму, и любую комбинацию предопределенных командных кнопок.

Синтаксис

int MessageBoxIndirect
(
LPMSGBOXPARAMS lpMsgBoxParams // адрес структуры для параметров
// окна сообщений

);

Параметры
lpMsgBoxParams
Указатель на структуру MSGBOXPARAMS, которая содержит информацию, используемую для показа на экране окна сообщений.

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

  • IDABORT - Была выбрана аварийная кнопка (Abort).
  • IDCANCEL - Была выбрана кнопка Прервать (Cancel).
  • IDIGNORE - Была выбрана кнопка Игнорировать (Ignore).
  • IDNO - Была выбрана кнопка Нет (No).
  • IDOK - Была выбрана кнопка Согласен (OK).
  • IDRETRY - Была выбрана кнопка Повторить (Retry).
  • IDYES - Была выбрана кнопка Да (Yes).

Если окно сообщений имеет кнопку Отменить (Cancel), функция возвращает значение IDCANCEL, если или нажата клавиша ESC, или кнопка выбрана Cancel. Если окно сообщений не имеет кнопки Cancel, нажатие на ESC не оказывает никакого влияния.

Замечания
Когда Вы используете системно - модальное окно сообщений, чтобы указать, что у системы мало памяти, строки, указанные элементами lpszText и lpszCaption структуры MSGBOXPARAMS не должны быть приняты из файла ресурса, потому что попытка загрузить ресурс может потерпеть неудачу.
Когда прикладная программа вызывает MessageBoxIndirect и устанавливает флажки MB_ICONHAND и MB_SYSTEMMODAL в элементе dwStyle структуры MSGBOXPARAMS, Windows показывает на экране законченное окно сообщений независимо от доступной памяти. Когда эти флажки установлены, Windows ограничивает длину текста в окне сообщений до трех строк. Windows автоматически не разрывает строки, чтобы подстроить их под окно сообщений, такая строка сообщения должна содержать символы перевода каретки, чтобы разрывать строки в соответствующих местах.
Если Вы создаете окно сообщений, в то время, когда присутствует диалоговое окно, используйте дескриптор блока диалога как параметр hWnd. Параметр hWnd не должен идентифицировать дочернее окно, типа органа управления в диалоговом окне.
Windows 95: Система может поддерживать максимум 16,364 дескрипторов окна.

Смотри также
MessageBox, MessageBoxEx, MSGBOXPARAMS

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

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


Структуры диалогового окна

Ниже перечисленные структуры используются для создания и управления диалоговым окном и органами управления в составе блоков диалога.

 

Структура DLGITEMTEMPLATE

Структура DLGITEMTEMPLATE определяет габариты и стиль органа управления в диалоговом окне. Одна или несколько этих структур объединяются со структурой DLGTEMPLATE, чтобы сформировать стандартный шаблон для блока диалога.

Синтаксис

typedef struct 
{ // dlit
DWORD style;
DWORD dwExtendedStyle;
short x;
short y;
short cx;
short cy;
WORD id;
} DLGITEMTEMPLATE;

Члены структуры
style
Определяет стиль органа управления. Этот элемент структуры может быть комбинацией значений стиля окна (типа WS_BORDER) и одного или нескольких значений стиля органов управления (типа BS_PUSHBUTTON и ES_LEFT).
dwExtendedStyle
Определяет расширенные стили для окна. Этот член структуры не используется, чтобы создавать органы управления в блоках диалога, однако прикладные программы, которые используют шаблоны диалогового окна, могут использовать его, чтобы создать другие типы окон.
x
Устанавливает x-координату, в единицах измерения диалогового окна, левого верхнего угла органа управления. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
y
Устанавливает y-координату, в единицах измерения диалогового окна, левого верхнего угла органа управления. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
cx
Устанавливает ширину, в единицах измерения диалогового окна, органа управления.
cy
Устанавливает высоту, в единицах измерения диалогового окна, органа управления.
id
Определяет идентификатор элемента управления.

Замечания
В стандартном шаблоне для диалогового окна, структура DLGITEMTEMPLATE всегда непосредственно сопровождается тремя массивами переменной длины, определяющими класс, заголовок и данные для создания органа управления. Каждый массив состоит из одного или большего количества 16-разрядных элементов.
Каждая структура DLGITEMTEMPLATE в шаблоне должна быть выровнена на по границе двойного слова (DWORD). Массивы класса и заголовка должны быть выровнены по границе слова (WORD). Массив данных создания должен быть выровнен по границе двойного слова (DWORD).
Непосредственно после каждой структуры DLGITEMTEMPLATE идет массив класса, который идентифицирует орган управления класса окна. Если первый элемент этого массива - какое-либо значение, отличающееся от 0xFFFF, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет название зарегистрированного класса окна. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который устанавливает порядковое значение предопределенного системой класса. Порядковое значение может быть одно из следующих значений атома:

  • 0x0080 - Кнопка (Button)
  • 0x0081 - Редактируемое окно (Edit)
  • 0x0082 - Статическое окно (Static)
  • 0x0083 - Окно со списком (List box)
  • 0x0084 - Линейка прокрутки (Scroll bar)
  • 0x0085 - Кобинированное окно (Combo box)

После массива класса идет массив заголовка, который содержит начальный текст или идентификатор ресурса органа управления. Если первый элемент этого массива - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое число ресурса, типа пиктограммы, в исполняемом файле. Вы можете использовать идентификатор ресурса для органов управления, таких как пиктограмма статического органа управления, который загружает и показывает на экране пиктограмму или другой ресурс, а не текст. Если первый элемент - какое-либо значение, отличающееся от 0xFFFF, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет начальный текст.
Массив данных для создания начинается со следующей границы ДВОЙНОГО СЛОВА (DWORD) после массива заголовка. Эти данные для создания могут иметь любой размер и формат. Если первый байт массива данных создания - не нуль, он указывает размер, в байтах, данных для создания (включая байт размера). Оконная процедура органа управления должна получить возможность, чтобы интерпретировать данные. Когда система создает орган управления, она передает указатель на эти данные в параметре lParam сообщения WM_CREATE, которые она отправляет органу управления.
Если Вы определяете строки символов в массивах класса и заголовка, Вы должны использовать строки Уникода. Чтобы создать код, который работает, и в Windows NT и в Windows 95, используйте функцию MultiByteToWideChar для генерации этих строк Уникода.
Члены структуры x, y, cx, и cy устанавливают значения в единицах измерения диалогового окна. Вы можете преобразовывать эти значения в растровые элементы (пиксели), используя функцию MapDialogRect.

Смотри также
CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATEEX, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar, WM_CREATE

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

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


Структура DLGTEMPLATE

Структура DLGTEMPLATE определяет габариты и стиль диалогового окна. Эта структура, всегда первая в стандартном шаблоне для блока диалога, а также определяет число органов управления в диалоговом окне и, следовательно, определяет число последующих структур DLGITEMTEMPLATE в шаблоне.

Синтаксис

typedef struct 
{
DWORD style;
DWORD dwExtendedStyle;
WORD cdit;
short x;
short y;
short cx;
short cy;
} DLGTEMPLATE;

Члены структуры
style
Определяет стиль диалогового окна. Этот член структуры может быть комбинацией значений стиля окна (таких как WS_CAPTION и WS_SYSMENU) и одного или большего количества следующих значений стиля блока диалога:

  • DS_3DLOOK - Дает диалоговому окну не полужирный шрифт и выводит трехмерные рамки вокруг окон органа управления в блоке диалога. Стиль DS_3DLOOK требуется только прикладным программам, базирующимся на Win32, откомпилированным для версий Windows более ранних, чем Windows 95 или Windows NT 4.0. Система автоматически применяет трехмерный вид к диалоговым окнам, созданным прикладными программами, откомпилированными для текущих версий Windows.
  • DS_ABSALIGN - Указывает, что координаты диалогового окна - экранные координаты. Если этот стиль не определен, Windows предполагает, что они - координаты рабочей области.
  • DS_CENTER - Центрирует диалоговое окно в рабочей области; то есть в области, не затененной блоком.
  • DS_CENTERMOUSE - Центрирует курсор мыши в диалоговом окне.
  • DS_CONTEXTHELP - Включает вопросительный знак в строку заголовка диалогового окна. Когда пользователь щелкает по вопросительному знаку, курсор изменяется на вопросительный знак с указателем. Если пользователь затем щелкает по органу управления в диалоговом окне, элемент управления принимает сообщение WM_HELP. Орган управления должен передать сообщение в процедуру диалогового окна, которая должна вызвать функцию WinHelp, используя команду HELP_WM_HELP. Прикладная программа Справка (Help) отображает на экране выскакивающее окно, которое обычно содержит справку для органа управления. Обратите внимание, что DS_CONTEXTHELP - только символ- заменитель шаблона. Когда создается диалоговое окно, система проверяет наличие флажка включения для DS_CONTEXTHELP и, если он имеется, прибавляет WS_EX_CONTEXTHELP к расширенному стилю блока диалога. WS_EX_CONTEXTHELP не может быть использован со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.
  • DS_CONTROL - Создает диалоговое окно, которое работает также как дочернее окно другого диалогового окна, очень похоже на страницу в окне свойств. Этот стиль позволяет пользователю перемешаться при помощи клавиши TAB среди органов управления окна дочернего блока диалога, использовать его клавиши - ускорители и так далее.
  • DS_FIXEDSYS - Вынуждает диалоговое окно использовать SYSTEM_FIXED_FONT вместо значения по умолчанию SYSTEM_FONT. SYSTEM_FIXED_FONT - шрифт фиксированной ширины, совместимый с Системным шрифтом в версиях Windows ранее чем 3.0.
  • DS_LOCALEDIT - Применяется только в 16-разрядных прикладных программах. Этот стиль предписывает полям редактирования в диалоговом окне распределять память из сегмента данных прикладной программы. Иначе, редактируемые поля распределяют память для хранения данных из объекта глобальной памяти.
  • DS_MODALFRAME - Создает диалоговое окно с рамкой модального блока диалога, которая может быть объединена со строкой заголовка и Системным меню, путем установки стилей WS_CAPTION и WS_SYSMENU.
  • DS_NOFAILCREATE - Только для Windows 95: Создает диалоговое окно, даже если происходят ошибки - например, если дочернее окно не может быть создано или, если система не может создать специальный сегмент данных для поля редактирования.
  • DS_NOIDLEMSG - Подавляет сообщения WM_ENTERIDLE, которые Windows, иначе передал бы владельцу диалогового окна, в то время когда блок диалога отображался на экране.
  • DS_SETFONT - Указывает, что заголовок шаблона блока диалога содержит дополнительные данные, определяющие шрифт, который используется для текста в рабочей области и органах управления диалогового окна. Данные о шрифте начинаются по границе слова (WORD), которая следует за массивом заголовка. Они определяет 16-разрядное значение размера в пунктах и строку с именем шрифта Уникода. Если возможно, система создает шрифт согласно заданным величинам. Затем система передает дескриптор шрифта в блок диалога и в каждый орган управления, отправляя им сообщение WM_SETFONT. Если этот стиль не определен, шаблон диалогового окна не включает данные о шрифте.
  • DS_SETFOREGROUND - Вынуждает систему использовать функцию SetForegroundWindow, чтобы привести диалоговое окно в активный режим.
  • DS_SYSMODAL - Создает системно - модальный блок диалога. Этот стиль заставляет диалоговое окно иметь стиль WS_EX_TOPMOST, а в остальном, он не оказывает никакого влияния на блок диалога или поведение других окон в системе, когда диалоговое окно показывается на экране.

dwExtendedStyle
Определяет расширенные стили для окна. Этот член структуры не используется для создания диалогового окна, но прикладные программы, которые используют шаблоны блока диалога, могут использовать его, чтобы создать другие типы окон.
cdit
Определяет число элементов в диалоговом окне.
x
Устанавливает x-координату, в единицах измерения диалогового окна, левого верхнего угла блока диалога.
y
Устанавливает y-координату, в единицах измерения диалогового окна, левого верхнего угла блока диалога.
cx
Устанавливает ширину, в единицах измерения диалогового окна, блока диалога.
cy
Устанавливает высоту, в единицах измерения диалогового окна, блока диалога.

Замечания
В стандартном шаблоне для блока диалога, структура DLGTEMPLATE всегда непосредственно сопровождается тремя массивами переменной длины, которые определяют меню, класс и заголовок для диалогового окна. Когда дается стиль DS_SETFONT, эти массивы сопровождаются к тому же 16-разрядным значением, определяющим размер в пунктах, а другой массив переменной длины определяет название шрифта. Каждый массив состоит из одного или большего числа 16-разрядных элементов. Меню, класс, заголовок и массивы шрифта должны быть выровнены по границам СЛОВА (WORD).
Непосредственно после структуры DLGTEMPLATE - массив меню, который идентифицирует ресурс меню для блока диалога. Если первый элемент этого массива - 0x0000, у диалогового окна нет никакого меню, и массив не имеет никаких других элементов. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет какое-либо другое значение, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет название ресурса меню в исполняемом файле.
После массива меню - массив класса, который идентифицирует класс окна органа управления. Если первый элемент массива - 0x0000, система использует предопределенный класс диалогового окна для блока диалога, и массив не имеет никаких других элементов. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение предопределенного системного класса окна. Если первый элемент имеет любое другое значение, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая устанавливает имя зарегистрированного класса окна.
После массива класса - массив заголовка, определяющий строку Уникода с нулевым символом в конце, которая содержит заголовок диалогового окна. Если первый элемент этого массива - 0x0000, диалоговое окно не имеет никакого заголовка, а массив не имеет никаких других элементов.
16-разрядное значение размера шрифта в пунктах и массив шрифта следуют за массивом заголовка, но только тогда, если элемент style структуры определяет стиль DS_SETFONT. Значение кегля в пунктах определяет размер в пунктах шрифта, который используется для текста в диалоговом окне и его органах управления. Массив шрифта является строкой Уникода с нулевым символом в конце, определяющей название гарнитуры для шрифта. Когда эти значения даются, Windows создает шрифт, имеющий данный размер и гарнитуру (если возможно) и отправляет сообщение WM_SETFONT процедуре диалогового окна и оконным процедурам элементов управления, поскольку оно создает блок диалога и органы управления.
После заголовка DLGTEMPLATE в стандартном шаблоне диалогового окна имеется одна или несколько структур DLGITEMTEMPLATE, которые определяют габариты и стиль органов управления в блоке диалога. Член структуры cdit определяет число структур DLGITEMTEMPLATE в шаблоне. Эти структуры DLGITEMTEMPLATE должны быть выровнены по границам ДВОЙНОГО СЛОВА (DWORD).
Если Вы определяете строки символов в меню, классе, заголовке, или массивах шрифта, Вы должны использовать строки Уникода. Чтобы создать код, который работает, и в Windows NT, и в Windows 95, используйте функцию MultiByteToWideChar, чтобы генерировать эти строки Уникода.
Члены структуры x, y, cx, и cy устанавливают значения в единицах измерения диалогового окна. Вы можете преобразовывать эти значения в экранные единицы измерения (пиксели), используя функцию MapDialogRect.

Смотри также
CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar

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

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


Структура MSGBOXPARAMS

Структура MSGBOXPARAMS содержит информацию, используемую для отображения окна сообщений. Эту структуру использует функция MessageBoxIndirect.

Синтаксис

typedef struct 
{
UINT cbSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCSTR lpszText;
LPCSTR lpszCaption;
DWORD dwStyle;
LPCSTR lpszIcon;
DWORD dwContextHelpId;
MSGBOXCALLBACK lpfnMsgBoxCallback;
DWORD dwLanguageId;
} MSGBOXPARAMS, *PMSGBOXPARAMS, FAR *LPMSGBOXPARAMS;

Члены структуры
cbSize
Определяет размер структуры в байтах.
hwndOwner
Идентифицирует окно владельца. Этот член структуры может быть значением ПУСТО (NULL).
hInstance
Идентифицирует экземпляр, содержащий ресурс пиктограммы, идентифицированный членом структуры lpszIcon и строковый ресурс, идентифицированный членом структуры lpszText или lpszCaption.
lpszText
Указывает на строку с символом нуля в конце, или идентификатор строкового ресурса, который содержит сообщение, которое будет отображено на экране.
lpszCaption
Указывает на строку с символом нуля в конце или идентификатор строкового ресурса, который содержит заголовок окна сообщений. Если этот член структуры имеет значение ПУСТО (NULL), по умолчанию используется заголовок, Ошибка (Error).
dwStyle
Определяет установку битов флажков, которые определяют содержание и поведение диалогового окна. Этот член структуры может быть комбинацией флажков, описанных параметром uType функции MessageBoxEx.
Кроме того, Вы можете определить флажок MB_USERICON, если хотите, чтобы окно сообщений отобразило на экране пиктограмму, заданную членом структуры lpszIcon.
lpszIcon
Идентифицирует ресурс пиктограммы. Этот параметр может быть или строкой с символом нуля в конце, или целочисленным идентификатором ресурса, переданным макрокомандой MAKEINTRESOURCE.
Чтобы загрузить одну из предопределенных пиктограмм Windows, установите член структуры hInstance в значение ПУСТО (NULL), а lpszIcon установите в одно из значений, перечисленных в функции LoadIcon.
Этот элемент игнорируется, если член структуры dwStyle не определяет флажок MB_USERICON.
dwContextHelpId
Идентифицирует контекст Справки (Help). Если происходит событие Справки (Help), это значение определено в структуре HELPINFO, которое окно сообщений передает окну владельца или функции повторного вызова.
lpfnMsgBoxCallback
Указывает на функцию повторного вызова, которая обрабатывает события Справки для окна сообщений. Функция повторного вызова имеет следующую форму:

VOID CALLBACK MsgBoxCallback(LPHELPINFO lpHelpInfo);

Если этот элемент имеет значение ПУСТО (NULL), когда происходят события Справки окно сообщений отправляет окну владельца сообщения WM_HELP.
dwLanguageId
Определяет язык, на котором отображается текст, содержащийся в предопределенных командных кнопках. Это значение должно быть в форме, возвращаемой макрокомандой MAKELANGID.
Список идентификаторов языка, поддерживаемых Win32, можно посмотреть в статье Идентификаторы Языка. Обратите внимание, что каждый привязанный к конкретной стране выпуск Windows обычно содержит ресурсы только для ограниченного набора языков. Таким образом, например, Американская версия предлагает вниманию LANG_ENGLISH, Французская версия предлагает вниманию LANG_FRENCH, Немецкая версия предлагает вниманию LANG_GERMAN и Японская версия предлагает вниманию LANG_JAPANESE. Каждая версия предлагает LANG_NEUTRAL. Это ограничивает набор значений, которые могут быть использованы параметром wLanguageId. Перед определением идентификатора языка, Вы должны перечислить местности, которые установлены в системе.

Смотри также
HELPINFO, LoadIcon, MAKEINTRESOURCE, MAKELANGID, MessageBoxEx, MessageBoxIndirect, WM_HELP

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

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


Псевдоструктура DLGITEMTEMPLATEEX

Структура DLGITEMTEMPLATEEX не определена в каком-либо стандартном заголовочном файле. Определение структуры предусмотрено здесь, чтобы объяснить формат расширенного шаблона для диалогового окна.

Для каждого органа управления в диалоговом окне, расширенный шаблон блока диалога, чтобы описать элемент управления, имеет блок данных, который использует формат DLGITEMTEMPLATEEX. Для описания формата расширенного шаблона блока диалога, см. DLGTEMPLATEEX.

Синтаксис

//typedef struct {
// DWORD helpID;
// DWORD exStyle;
// DWORD style;
// short x;
// short y;
// short cx;
// short cy;
// WORD id;
// sz_Or_Ord windowClass; // название или порядковое числительное класса окна
// sz_Or_Ord title; // строка заголовка или порядковое числительное ресурса
// WORD extraCount; // байты, сопутствующие данным создания
//} DLGITEMTEMPLATEEX;

Члены структуры
helpID
Определяет идентификатор справочного контекста для органа управления. Когда система передает сообщение WM_HELP, она посылает значение helpID в член dwContextId структуры HELPINFO.
dwExtendedStyle
Определяет расширенные стили для окна. Этот элемент структуры не используется для создания органов управления в блоках диалога, но в прикладных программах, которые используют шаблоны диалогового окна, его можно использовать, чтобы создать другие типы окон.
style
Определяет стиль органа управления. Этот элемент структуры может быть комбинацией значений стиля окна (типа WS_BORDER) и одного или нескольких значений стиля органа управления (типа BS_PUSHBUTTON и ES_LEFT).
x
Определяет x-координату, в единицах измерения диалогового окна, левого верхнего угла элемента управления. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
y
Определяет y-координату, в единицах измерения диалогового окна, левого верхнего угла элемента управления. Эта координата - всегда относительно левого верхнего угла рабочей области блока диалога.
cx
Определяет ширину, в единицах измерения диалогового окна, органа управления.
cy
Определяет высоту, в единицах измерения диалогового окна, элемента управления.
id
Определяет идентификатор органа управления.
windowClass
Определяет массив переменной длины 16-разрядных элементов, который идентифицирует класс окна органа управления. Если первый элемент этого массива является каким-либо значением, отличающимся от 0xFFFF, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет название зарегистрированного класса окна.
Если первый элемент является 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение предопределенного системного класса. Порядковым числом может быть одно из следующих значений атома.

  • 0x0080 - Кнопка (Button)
  • 0x0081 - Редактируемое окно (Edit)
  • 0x0082 - Статическое окно (Static)
  • 0x0083 - Окно со списком (List box)
  • 0x0084 - Линейка прокрутки (Scroll bar)
  • 0x0085 - Комбинированное окно (Combo box)

title
Определяет массив переменной длины 16-разрядных элементов, который содержит начальный текст или идентификатор ресурса органа управления. Если первый элемент этого массива - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое число, которое идентифицирует ресурс, типа пиктограммы, в исполняемом файле. Вы можете использовать идентификатор ресурса для органов управления, типа статических элементов управления пиктограммы, которые загружают и показывают пиктограмму или другой ресурс, а не текст.
Если первый элемент - какое-либо значение, отличающееся от 0xFFFF, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет начальный текст.
extraCount
Устанавливает число байтов данных создания, которые следуют за этим членом структуры. Если он имеет значение большее, чем нуль, данные создания начинаются со следующей границы ДВОЙНОГО СЛОВА (DWORD). Эти данные создания могут иметь любой размер и формат. Оконная процедура органа управления должна получить возможность, чтобы интерпретировать данные. Когда система создает орган управления, она передает указатель на эти данные в параметре lParam сообщения WM_CREATE, который передается элементу управления.

Замечания
Расширенный шаблон для диалогового окна состоит из заголовка DLGTEMPLATEEX, сопровождаемого структурой DLGITEMTEMPLATEEX для каждого органа управления в блоке диалога.
Каждая структура DLGITEMTEMPLATEEX должна быть выровнена по границе ДВОЙНОГО СЛОВА (DWORD). Массивы переменной длины windowClass и title должны быть выровнены по границам СЛОВА (WORD). Массив данных создания, если он имеется, должен быть выровнен по границе ДВОЙНОГО СЛОВА (DWORD).
Если Вы определяете в строки символов в массивах windowClass и title, Вы должны использовать строки Уникода. Чтобы создать код, который работает, и в Windows NT и в Windows 95, используйте функцию MultiByteToWideChar, чтобы генерировать эти строки Уникода.
Члены структуры x, y, cx и cy определяют значения в единицах измерения диалогового окна. Вы можете преобразовывать эти значения в экранные единицы измерения (пиксели), используя функцию MapDialogRect.

Смотри также
CreateDialogIndirect, CreateDialogIndirectParam, CreateWindowEx, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGTEMPLATE, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar

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

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


Псевдоструктура DLGTEMPLATEEX

Структура DLGTEMPLATEEX не определена в каком-либо стандартном заголовочном файле. Определение структуры предусмотрено здесь, чтобы объяснить формат расширенного шаблона для диалогового окна.
Расширенный шаблон диалогового окна начинается с заголовка DLGTEMPLATEEX, который описывает блок диалога и определяет число органов управления в диалоговом окне. Для каждого элемента управления в блоке диалога, расширенный шаблон диалогового окна имеет блок данных, который использует формат DLGITEMTEMPLATEEX, чтобы описать орган управления.

//typedef struct {
// WORD dlgVer;
// WORD signature;
// DWORD helpID;
// DWORD exStyle;
// DWORD style;
// WORD cDlgItems;
// short x;
// short y;
// short cx;
// short cy;
// sz_Or_Ord menu; // название или порядковое число ресурса меню
// sz_Or_Ord windowClass; // название или порядковое число класса окна
// WCHAR title[titleLen]; // строка заголовка диалогового окна
// short pointsize; // только если установлен флаг DS_SETFONT
// short weight; // только если установлен флаг DS_SETFONT
// short bItalic; // только если установлен флаг DS_SETFONT
// WCHAR font[fontLen]; // название гарнитуры, если установлен флаг DS_SETFONT
//} DLGTEMPLATEEX;

Члены структуры
dlgVer
Указывает, не является ли шаблон расширенным шаблоном диалогового окна. Значение 0xFFFF указывает на расширенный шаблон блока диалога. В этом случае, член структуры signature определяет номер версии шаблона. Если dlgVer - любое другое значение, а не 0xFFFF, это - стандартный шаблон, который использует структуры DLGTEMPLATE и DLGITEMTEMPLATE.
signature
Определяет номер версии расширенного шаблона диалогового окна. Этот член структуры должен установить 1.
helpID
Определяет идентификатор контекста справки для окна блока диалога. Когда система отправляет сообщение WM_HELP, она передает это значение в член dwContextId структуры HELPINFO.
exStyle
Определяет расширенные стили для окна. Этот элемент структуры не используется для создания диалогового окна, однако, прикладные программы, которые используют шаблоны блока диалога, могут использовать его, чтобы создать другие типы окон.
style
Определяет стиль диалогового окна. Этот член структуры может быть комбинацией значений стиля окна (типа WS_CAPTION и WS_SYSMENU) и одного или нескольких следующих значений стиля блока диалога.

  • DS_3DLOOK - Предоставляет диалоговому окну не полужирный шрифт и чертит трехмерные рамки вокруг окон органов управления в блоке диалога.Стиль DS_3DLOOK требуется только прикладным программам, базирующимися на Win32, откомпилированным для версий Windows более ранних, чем Windows 95 или Windows NT 4.0. Система автоматически применяет трехмерный вид к диалоговым окнам, созданным прикладными программами, откомпилированными для текущих версий Windows.
  • DS_ABSALIGN - Указывает, что координаты диалогового окна - экранные координаты. Если этот стиль не определен, система обрабатывает их как координаты пользователя.
  • DS_CENTER - Центрирует диалоговое окно в рабочей области; то есть в области, не закрытой содержимым.
  • DS_CENTERMOUSE - Центрирует курсор мыши в диалоговом окне.
  • DS_CONTEXTHELP - Включает вопросительный знак в область заголовка диалогового окна. Когда пользователь щелкает по вопросительному знаку, курсор изменяется в вопросительный знак с указателем. Если пользователь затем щелкает по органу управления в блоке диалога, элемент управления принимает сообщение WM_HELP. Орган управления должен передать сообщение в процедуру диалогового окна, которая должна вызвать функцию WinHelp, используя команду HELP_WM_HELP. Справка (Help) прикладной программы показывает на экране выскакивающее окно, которое обычно содержит справку на орган управления. Обратите внимание, что DS_CONTEXTHELP является только меткой - заместителем. Когда блок диалога создается, система проверяет наличие DS_CONTEXTHELP и, если он там имеется, добавляет WS_EX_CONTEXTHELP к расширенному стилю диалогового окна. Вы не можете использовать стиль WS_EX_CONTEXTHELP со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.
  • DS_CONTROL - Создает диалоговое окно, которое работает также как дочернее окно другого диалогового окна, очень похожее на страницу в окне свойств. Этот стиль позволяет пользователю перемещаться при помощи клавиши TAB среди окон органов управления дочернего блока диалога, использовать его клавиши - ускорители и так далее.
  • DS_FIXEDSYS - Вынуждает диалоговое окно использовать SYSTEM_FIXED_FONT вместо значения по умолчанию SYSTEM_FONT. SYSTEM_FIXED_FONT - шрифт моноширинный (фиксированной ширины), совместимый с Системным шрифтом в версиях Windows ранее чем 3.0.
  • DS_LOCALEDIT - Применяется только в 16-разрядных прикладных программах. Этот стиль предписывает полям редактирования в диалоговом окне назначать память в сегменте данных приложения. Иначе, поле редактирования назначает память в объекте глобальной памяти.
  • DS_MODALFRAME - Создает диалоговое окно с модальной структурой блока диалога, которое может быть объединено с областью заголовка и Системным меню, при помощи установки стилей WS_CAPTION и WS_SYSMENU.
  • DS_NOFAILCREATE - Windows 95 только: Создает диалоговое окно, даже если происходят ошибки - например, если дочернее окно не может быть создано или если система не может создать специальный сегмент данных для поля редактирования.
  • DS_NOIDLEMSG - Подавляет сообщения WM_ENTERIDLE, которые Windows, иначе отправил бы владельцу диалогового окна, в то время кода блок диалога показывается на экране.
  • DS_SETFONT - Указывает, что заголовок расширенного шаблона диалогового окна DLGTEMPLATEEX содержит четыре дополнительных члена (pointsize, weight, bItalic и font), которые описывают шрифт, использующийся для текста в рабочей области и органах управления блока диалога. Если возможно, система создает шрифт согласно значениям, заданным в этих членах. Затем система передает дескриптор шрифта в диалоговое окно и в каждый орган управления, отправляя им сообщение WM_SETFONT.Если этот стиль не определен, расширенный шаблон диалогового окна не включает члены pointsize, weight, bItalic и font.
  • DS_SETFOREGROUND - Вынуждает систему использовать функцию SetForegroundWindow, чтобы привести диалоговое окно в режим переднего плана.
  • DS_SYSMODAL - Создает системно - модальный блок диалога. Этот стиль вынуждает диалоговое окно иметь стиль WS_EX_TOPMOST. Иначе, он не имеет никакого влияния на блок диалога или поведение других окон в системе, когда блок диалога отображается на экране.

cDlgItems
Определяет число органов управления в диалоговом окне.
x
Определяет x-координату, в единицах измерения диалогового окна, левого верхнего угла блока диалога.
y
Определяет y-координату, в единицах измерения диалогового окна, левого верхнего угла блока диалога.
cx
Определяет ширину, в единицах измерения диалогового окна, блока диалога.
cy
Определяет высоту, в единицах измерения диалогового окна, блока диалога.
menu
Определяет массив переменной длины 16-разрядных элементов, который идентифицирует ресурс меню для диалогового окна. Если первый элемент этого массива - 0x0000, у блока диалога нет меню, а у массива нет других элементов. Если первый элемент - 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение ресурса меню в исполняемом файле. Если первый элемент имеет какое-либо другое значение, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет название ресурса меню в исполняемом файле.
windowClass
Определяет массив переменной длины 16-разрядных элементов, который идентифицирует класс диалогового окна. Если первый элемент этого массива является 0х0000, система использует предопределенный класс диалогового окна, а у массива нет других элементов. Если первый элемент является 0xFFFF, массив имеет один дополнительный элемент, который определяет порядковое значение предопределенного системного класса окна. Если первый элемент этого массива является каким-либо другим значением, система обрабатывает массив как строку Уникода с нулевым символом в конце, которая определяет название зарегистрированного класса окна.
title
Определяет строку Уникода с символом нуля в конце, которая содержит заголовок диалогового окна. Если первый элемент этого массива - 0x0000, у блока диалога нет никакого заголовка, а у массива нет никаких других элементов.
pointsize
Определяет размер шрифта в пунктах, который используется для текста в диалоговом окне и его органах управления. Члены pointsize, weight, bItalic и font присутствуют в расширенном шаблоне блока диалога, только тогда, если член структуры style определяет стиль DS_SETFONT.
weight
Определяет толщину шрифта в диапазоне от 0 до 1000. Она может быть любой из значений, перечисленных для члена lfWeight структуры LOGFONT. Этот член структуры присутствует, только тогда, если член style определяет DS_SETFONT.
bItalic
Указывает, является ли шрифт курсивным. Если это значение - ИСТИНА (TRUE), шрифт курсивный. Этот элемент структуры присутствует, только тогда, если член style определяет DS_SETFONT.
font
Определяет строку Уникода с символом нуля в конце, которая содержит название гарнитуры для шрифта. Этот элемент структуры присутствует, только тогда, если член style определяет DS_SETFONT.

Замечания
Вы можете использовать расширенный шаблон диалогового окна вместо стандартного шаблона блока диалога в функциях CreateDialogIndirectParam и DialogBoxIndirectParam и макрокомандах CreateDialogIndirect и DialogBoxIndirect. Стандартный шаблон диалогового окна использует структуры DLGTEMPLATE и DLGITEMTEMPLATE.
После заголовка в расширенном шаблоне диалогового окна DLGTEMPLATEEX располагаются одна или несколько структур DLGITEMTEMPLATEEX, которые описывают органы управления блока диалога. Член структуры cDlgItems определяет число структур DLGITEMTEMPLATEEX в шаблоне.
Каждая структура DLGITEMTEMPLATEEX в шаблоне должна быть выровнена по границе ДВОЙНОГО СЛОВА (DWORD). Если член style определяет стиль DS_SETFONT, первая структура DLGITEMTEMPLATEEX начинается на первой границе ДВОЙНОГО СЛОВА (DWORD) после строки font. Если стиль DS_SETFONT не установлен, первая структура начинается на первой границе ДВОЙНОГО СЛОВА (DWORD) после строки title.
Массивы menu, windowClass, title и font должны быть выровнены по границам СЛОВА (WORD).
Если Вы определяете строки символов в массивах menu, windowClass, title и font, Вы должны использовать строки Уникода. Чтобы создать код, который работает, и в Windows NT и в Windows 95, используйте функцию MultiByteToWideChar, чтобы генерировать эти строки Уникода.
Члены структуры x, y, cx, и cy определяют значения в единицах измерения диалогового окна. Вы можете преобразовать эти значения в экранные единицы измерения (пиксели), используя функцию MapDialogRect.

Смотри также
CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, MapDialogRect, MultiByteToWideChar, WM_SETFONT

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

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


Сообщения диалогового окна

Ниже перечисленные сообщения используются, чтобы создавать и управлять блоками диалога и органами управления в пределах диалогового окна.

 

Сообщение DM_GETDEFID

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

Синтаксис

DM_GETDEFID

Параметры
У этого сообщения нет параметров.

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

Замечания
Это сообщение обрабатывает функция DefDlgProc.

Смотри также
DefDlgProc, DM_SETDEFID

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

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


Сообщение DM_REPOSITION

Сообщение DM_REPOSITION переустанавливает диалоговое окно верхнего уровня так, чтобы оно соответствовало размерам области рабочего стола. Прикладная программа может отправить это сообщение блоку диалога после изменения размеров рабочего стола, чтобы гарантировать, что диалоговое окно останется полностью видимым.

Синтаксис

DM_REPOSITION
wParam = 0;
lParam = 0;

Параметры
У этого сообщения нет параметров.

Возвращаемые значения
У этого сообщения нет возвращаемых значений.

Замечания
Это сообщение не имеет влияния, если блок диалога дочернее окно.

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

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

 

Сообщение DM_SETDEFID

Приложение отправляет сообщение DM_SETDEFID для того, чтобы изменить идентификатор командной кнопки по умолчанию (выделенной) в диалоговом окне.

Синтаксис

DM_SETDEFID
wParam = idControl; // идентификатор созданной по умолчанию (выделенной) командной кнопки

Параметры
idControl
Значение wParam. Определяет идентификатор командной кнопки органа управления, которая станет «по умолчанию» (выделенной).

Замечания
Это сообщение обрабатывается функцией DefDlgProc. Чтобы установить заданную по умолчанию командную кнопку, функция может отправить сообщения WM_GETDLGCODE и BM_SETSTYLE в данный орган управления и текущей заданной по умолчанию командной кнопке.
Использование сообщения DM_SETDEFID может привести к показу больше чем одной кнопки, имеющей статус «по умолчанию» командной кнопки. Когда Windows поднимает диалоговое окно, она выводит сначала командную кнопку из шаблона блока диалога с рамкой состояния «по умолчанию» (выделенной). Отправка сообщения DM_SETDEFID для изменения кнопки по умолчанию не всегда удаляет рамку состояния «по умолчанию» из первой командной кнопки. В этих случаях, прикладная программа должна передать сообщение BM_SETSTYLE, чтобы изменить первоначальный стиль рамки командной кнопки.

Возвращаемые значения
Возвращаемое значение всегда ИСТИНА (TRUE).

Смотри также
BM_SETSTYLE, DefDlgProc, DM_GETDEFID, EM_SETLIMITTEXT, WM_GETDLGCODE

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

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


Сообщение WM_CTLCOLORDLG

Сообщение WM_CTLCOLORDLG отправляется диалоговому окну перед тем, как Windows выводит блок диалога. Отвечая на это сообщение, диалоговое окно может устанавливать свой текст и цвета фона, используя полученный дескриптор контекста устройства отображения

Синтаксис

WM_CTLCOLORDLG
hdcDlg = (HDC) wParam; // дескриптор диалогового окна контекста отображения
hwndDlg = (HWND) lParam; // дескриптор диалогового окна

Параметры
hdcDlg
Значение wParam. Идентифицирует контекст устройства для диалогового окна.
hwndDlg
Значение lParam. Идентифицирует диалоговое окно.

Возвращаемые значения
Если приложение обрабатывает это сообщение, оно возвращает дескриптор кисти. Windows использует кисть, чтобы создать фон диалогового окна.

Действие по умолчанию
Функция DefWindowProc выбирает заданные по умолчанию системные цвета для диалогового окна.

Замечания
Сообщение WM_CTLCOLORDLG никогда не передается между потоками. Оно отправляется только в пределах одного потока.
Обратите внимание, что сообщение WM_CTLCOLORDLG отправляется непосредственно диалоговому окну; все другие сообщения WM_CTLCOLOR* отправляются владельцу органа управления.

Смотри также
DefWindowProc, RealizePalette, SelectPalette, WM_CTLCOLORBTN, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX, WM_CTLCOLORMSGBOX, WM_CTLCOLORSCROLLBAR, WM_CTLCOLORSTATIC

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

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


Сообщение WM_CTLCOLORMSGBOX

Сообщение WM_CTLCOLORMSGBOX отправляется окну владельцу окна сообщений перед тем, как Windows выводит окно сообщений. Отвечая на это сообщение, окно владелец может устанавливать текст и цвета фона окна сообщений, используя полученный дескриптор контекста устройства отображения.

Синтаксис

WM_CTLCOLORMSGBOX
hdcMB = (HDC) wParam; // дескриптор контекста, который отображает окно сообщений
hwndMB = (HWND) lParam; // дескриптор окна сообщений

Параметры
hdcMB
Значение wParam. Идентифицирует контекст устройства для окна сообщений.
hwndMB
Значение lParam. Идентифицирует окно сообщений.

Возвращаемые значения
Если приложение обрабатывает это сообщение, оно должно возвратить дескриптор кисти. Windows использует эту кисть, чтобы создать фон окна сообщений.

Действия по умолчанию
Функция DefWindowProc выбирает заданные по умолчанию системные цвета для окна сообщений.

Замечания
Сообщение WM_CTLCOLORMSGBOX никогда не передается между потоками. Оно отправляется только в пределах одного потока.

Смотри также
DefWindowProc, RealizePalette, SelectPalette, WM_CTLCOLORBTN, WM_CTLCOLORDLG, WM_CTLCOLOREDIT, WM_CTLCOLORLISTBOX, WM_CTLCOLORSCROLLBAR, WM_CTLCOLORSTATIC

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

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


Сообщение WM_ENTERIDLE отправляется окну владельцу модального блока диалога или меню, которое вводит состояние "не занято". Модальное диалоговое окно или меню вводят состояние "не занято", когда в его очереди нет никаких сообщений, которые ожидают обработки после того, как оно обработало одно или несколько предыдущих сообщений.

Синтаксис

WM_ENTERIDLE
fuSource = wParam; // флажок "источник пустой"
hwnd = (HWND) lParam; // дескриптор диалогового окна или окна владельца

Параметры
fuSource
Значение wParam. Определяет, является ли сообщение ответом отображаемого на экране диалогового окна или меню. Этот параметр может быть одно из следующих значений:

  • MSGF_DIALOGBOX - Система является свободной, потому что диалоговое окно отображено на экране.
  • MSGF_MENU - Система является свободной, потому что меню отображено на экране.

hwnd
Значение lParam. Содержит дескриптор диалогового окна (если fuSource - MSGF_DIALOGBOX) или окна, содержащего отображенное меню (если fuSource - MSGF_MENU).

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

Замечания
Функция DefWindowProc возвращает значение нуль.

Смотри также
DefWindowProc

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

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

 

Сообщение WM_GETDLGCODE

Сообщение WM_GETDLGCODE отправляется процедуре диалогового окна, связанной с органом управления. Обычно, Windows обрабатывает входные данные всех клавиш курсора и клавиши ТАБ для органа управления. Отвечая на сообщение WM_GETDLGCODE, прикладная программа может взять под свой контроль специфический тип ввода и обрабатывать его непосредственно.

Синтаксис
WM_GETDLGCODE

Параметры
У этого сообщения нет параметров

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

  • DLGC_BUTTON - Кнопка (Button).
  • DLGC_DEFPUSHBUTTON - Командная кнопка по умолчанию (Default push button).
  • DLGC_HASSETSEL - Сообщение EM_SETSEL.
  • DLGC_RADIOBUTTON - Радио-кнопка (Radio button).
  • DLGC_STATIC - Статический элемент управления (Static control).
  • DLGC_UNDEFPUSHBUTTON - Командная кнопка не по умолчанию (Nondefault push button).
  • DLGC_WANTALLKEYS - Все вводимые данные с клавиатуры.
  • DLGC_WANTARROWS - Клавиши со стрелками.
  • DLGC_WANTCHARS - Сообщения WM_CHAR.
  • DLGC_WANTMESSAGE - Все вводимые данные с клавиатуры (прикладная программа передает это сообщение органу управления).
  • DLGC_WANTTAB - Клавиша TAB.

Действие по умолчанию
Функция DefWindowProc возвращает значение нуль.

Замечания
Хотя функция DefWindowProc всегда возвращает нуль в ответ на сообщение WM_GETDLGCODE, оконная процедура для предопределенных классов органов управления возвращает код, соответствующий каждому классу.
Сообщение WM_GETDLGCODE и возвращенные значения полезны только с определяемыми пользователем органами управления блока диалога или стандартными элементами управления, модифицируемыми при помощи подклассов.

Смотри также
DefWindowProc, EM_SETSEL, WM_CHAR

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

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


Сообщение WM_INITDIALOG

Сообщение WM_INITDIALOG отправляется процедуре диалогового окна непосредственно перед отображением на экране диалогового окна. Процедуры диалогового окна обычно используют это сообщение, чтобы инициализировать органы управления и выполнить какие-либо другие задачи инициализации, которые воздействуют на внешний вид блока диалога.

Синтаксис

WM_INITDIALOG
hwndFocus = (HWND) wParam; // дескриптор блока диалога принявшего
// фокус ввода
lInitParam = lParam; // параметры инициализации

Параметры
hwndFocus
Значение wParam. Идентифицирует орган управления, который по умолчанию принимает фокус клавиатуры. Windows устанавливает заданный по умолчанию фокус клавиатуры только тогда, если процедура диалогового окна возвратит значение ИСТИНА (TRUE).
lInitParam
Значение lParam. Определяет дополнительные данные инициализации. Эти данные передаются в Windows как параметр lParamInit при вызове функций CreateDialogIndirectParam, CreateDialogParam, DialogBoxIndirectParam или DialogBoxParam, используемых для создания диалогового окна. Этот параметр нулевой, если использована другая функция создания блока диалога.

Возвращаемые значения
Процедура диалогового окна должна возвратить значение ИСТИНА (TRUE), чтобы направить Windows на установку фокуса клавиатуры в орган управления, заданный параметром hwndFocus. Иначе, она должна возвратить значение ЛОЖЬ(FALSE), чтобы не допустить Windows к установке заданного по умолчанию фокуса клавиатуры.

Замечания
Орган управления, который принимает заданный по умолчанию фокус клавиатуры, является всегда первым элементом управления в диалоговом окне, которое является видимым, не заблокированным, и оно имеет стиль WS_TABSTOP. Когда процедура диалогового окна возвращает значение ИСТИНА (TRUE), Windows отмечает этот орган управления, чтобы гарантировать, чтобы процедура не отключит его. Если оно заблокировано, Windows устанавливает фокус клавиатуры в следующем элементе управления, который является видимым, не заблокированным, и имеет стиль WS_TABSTOP.
Прикладная программа может возвратить значение ЛОЖЬ(FALSE) только тогда, если она установила фокус клавиатуры в одном из органов управления диалогового окна.

Смотри также
CreateDialogIndirectParam, CreateDialogParam, DialogBoxIndirectParam, DialogBoxParam, SetFocus

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

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

 

Сообщение WM_NEXTDLGCTL

Сообщение WM_NEXTDLGCTL отправляется процедуре диалогового окна, чтобы установить фокус клавиатуры в другом органе управления диалогового окна.

Синтаксис

WM_NEXTDLGCTL
wCtlFocus = wParam; // идентифицирует орган управления для фокуса
fHandle = (BOOL) LOWORD(lParam); // флажок дескриптора wParam

Параметры
wCtlFocus
Значение wParam. Если параметр fHandle - ИСТИНА (TRUE), параметр wCtlFocus идентифицирует орган управления, который принимает фокус. Если fHandle - ЛОЖЬ(FALSE), wCtlFocus - флажок, который указывает, принимает ли следующий или предыдущий орган управления со стилем WS_TABSTOP фокус. Если параметр wCtlFocus нулевой, следующий элемент управления принимает фокус; иначе, фокус принимает предыдущий орган управления со стилем WS_TABSTOP.
fHandle
Значение lParam. Содержит флажок, который указывает, как Windows использует параметр wCtlFocus. Если параметр fHandle - ИСТИНА (TRUE), wCtlFocus - дескриптор, связанный с органом управления, который принимает фокус; иначе, wCtlFocus - флажок, который указывает, принимает ли следующий или предыдущий элемент управления со стилем WS_TABSTOP фокус.

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

Замечания
Действие этого сообщения отличается от такого же действия функции SetFocus тем, что WM_NEXTDLGCTL изменяет рамку вокруг элемента управления.
Не используйте функцию SendMessage, чтобы отправить сообщение WM_NEXTDLGCTL, если ваша прикладная программа одновременно обрабатывает другие сообщения, которые устанавливают фокус. Вместо этого используйте функцию PostMessage.

Смотри также
PostMessage, SendMessage, SetFocus

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

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