Диалоговые окна (диалоговые окна)

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

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

В этом разделе

Имя Описание
Сведения о диалоговых окнах Обсуждается использование диалоговых окон в пользовательском интерфейсе для приложений.
Рекомендации по программированию диалоговых окон В этом обзоре рассматриваются некоторые аспекты программирования, касающиеся диалоговых окон.
Использование диалоговых окон Диалоговые окна используются для отображения сведений и запроса ввода от пользователя.
Справочник по диалоговым окнам Справочник по API
Общая библиотека диалоговых окон Описывает использование общих диалоговых окон в пользовательском интерфейсе для приложений.

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

Имя Описание
CreateDialog Создает немодное диалоговое окно на основе ресурса шаблона диалогового окна.
CreateDialogIndirect Создает немодное диалоговое окно на основе шаблона диалогового окна в памяти.
CreateDialogIndirectParam Создает немодное диалоговое окно на основе шаблона диалогового окна в памяти. Перед отображением диалогового окна функция передает определенное приложением значение в процедуру диалогового окна в качестве параметра lParamсообщения WM_INITDIALOG . Приложение может использовать это значение для инициализации элементов управления диалоговых окон.
CreateDialogParam Создает немодное диалоговое окно на основе ресурса шаблона диалогового окна. Перед отображением диалогового окна функция передает определенное приложением значение в процедуру диалогового окна в качестве параметра lParamсообщения WM_INITDIALOG . Приложение может использовать это значение для инициализации элементов управления диалоговых окон.
DefDlgProc Вызывает процедуру диалогового окна по умолчанию, чтобы обеспечить обработку по умолчанию для всех оконных сообщений, которые не обрабатываются диалоговым окном с закрытым классом окна.
Диалоговое окно Создает модальное диалоговое окно на основе ресурса шаблона диалогового окна. DialogBox не возвращает управление, пока указанная функция обратного вызова не завершит модальное диалоговое окно путем вызова функции EndDialog .
DialogBoxIndirect Создает модальное диалоговое окно на основе шаблона диалогового окна в памяти. DialogBoxIndirect не возвращает управление, пока указанная функция обратного вызова не завершит модальное диалоговое окно, вызвав функцию EndDialog .
DialogBoxIndirectParam Создает модальное диалоговое окно на основе шаблона диалогового окна в памяти. Перед отображением диалогового окна функция передает определенное приложением значение в процедуру диалогового окна в качестве параметра lParamсообщения WM_INITDIALOG . Приложение может использовать это значение для инициализации элементов управления диалоговых окон.
DialogBoxParam Создает модальное диалоговое окно на основе ресурса шаблона диалогового окна. Перед отображением диалогового окна функция передает определенное приложением значение в процедуру диалогового окна в качестве параметра lParamсообщения WM_INITDIALOG . Приложение может использовать это значение для инициализации элементов управления диалоговых окон.
DialogProc Определяемая приложением функция обратного вызова, используемая с семействами функций CreateDialog и DialogBox . Он обрабатывает сообщения, отправленные в модальное или немодальное диалоговое окно. Тип DLGPROC определяет указатель на эту функцию обратного вызова. DialogProc — это заполнитель для имени определяемой приложением функции.
EndDialog Уничтожает модальное диалоговое окно, в результате чего система завершает обработку диалогового окна.
GetDialogBaseUnits Извлекает базовые единицы диалогового окна системы, которые представляют собой среднюю ширину и высоту символов в системном шрифте. Для диалоговых окон, использующих системный шрифт, эти значения можно использовать для преобразования между единицами шаблонов диалоговых окон, как указано в шаблонах диалоговых окон, в пиксели. Для диалоговых окон, не использующих системный шрифт, преобразование единиц шаблонов диалогов в пиксели зависит от шрифта, используемого диалоговым окном.
GetDlgCtrlID Извлекает идентификатор указанного элемента управления.
GetDlgItem Извлекает дескриптор элемента управления в указанном диалоговом окне.
GetDlgItemInt Преобразует текст указанного элемента управления в диалоговом окне в целочисленное значение.
GetDlgItemText Извлекает заголовок или текст, связанный с элементом управления в диалоговом окне.
GetNextDlgGroupItem Извлекает дескриптор к первому элементу управления в группе элементов управления, который предшествует (или следует) указанному элементу управления в диалоговом окне.
GetNextDlgTabItem Извлекает дескриптор для первого элемента управления, который имеет стиль WS_TABSTOP , предшествующий (или следующий) указанному элементу управления.
IsDialogMessage Определяет, предназначено ли сообщение для указанного диалогового окна, и, если оно имеется, обрабатывает сообщение.
MapDialogRect Преобразует указанные единицы диалогового окна в единицы экрана (пиксели). Функция заменяет координаты в указанной структуре RECT преобразованными координатами, что позволяет использовать структуру для создания диалогового окна или размещения элемента управления в диалоговом окне.
Messagebox Отображает модальное диалоговое окно, содержащее системный значок, набор кнопок и краткое сообщение для конкретного приложения, например сведения о состоянии или ошибке. Окно сообщения возвращает целочисленное значение, указывающее, какую кнопку нажал пользователь.
MessageBoxEx Создает, отображает и управляет окном сообщения. Окно сообщения содержит определенное приложением сообщение и заголовок, а также любое сочетание предопределенных значков и кнопок нажатия. Кнопки используются на языке пользовательского интерфейса системы.
MessageBoxIndirect Создает, отображает и управляет окном сообщения. Окно сообщения содержит текст и заголовок сообщения, определяемые приложением, любой значок и любое сочетание предопределенных кнопок нажатия.
SendDlgItemMessage Отправляет сообщение указанному элементу управления в диалоговом окне.
SetDlgItemInt Задает текст элемента управления в диалоговом окне строковое представление указанного целочисленного значения.
SetDlgItemText Задает заголовок или текст элемента управления в диалоговом окне.

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

Имя Описание
DM_GETDEFID Извлекает идентификатор элемента управления push-кнопкой по умолчанию для диалогового окна.
DM_REPOSITION Перемещает диалоговое окно верхнего уровня так, чтобы оно помещалось в область рабочего стола. Приложение может отправить это сообщение в диалоговое окно после изменения его размера, чтобы все диалоговое окно оставалось видимым.
DM_SETDEFID Изменяет идентификатор кнопки нажатия по умолчанию для диалогового окна.

Уведомления диалогового окна

Имя Описание
WM_CTLCOLORDLG Отправляется в диалоговое окно до того, как система рисует диалоговое окно. Отвечая на это сообщение, диалоговое окно может задать цвета текста и фона с помощью указанного дескриптора контекста устройства отображения.
WM_ENTERIDLE Отправляется в окно владельца модального диалогового окна или меню, которое входит в состояние простоя. Модальное диалоговое окно или меню переходит в состояние простоя, когда сообщения не ожидаются в очереди после обработки одного или нескольких предыдущих сообщений.
WM_GETDLGCODE Отправляется в процедуру окна, связанную с элементом управления . По умолчанию система обрабатывает весь ввод с клавиатуры элемента управления; система интерпретирует определенные типы ввода с клавиатуры как клавиши навигации в диалоговом окне. Чтобы переопределить это поведение по умолчанию, элемент управления может отвечать на сообщение WM_GETDLGCODE , указывая типы входных данных, которые он хочет обработать самостоятельно.
WM_INITDIALOG Отправляется в процедуру диалогового окна непосредственно перед отображением диалогового окна. Процедуры диалоговых окон обычно используют это сообщение для инициализации элементов управления и выполнения любых других задач инициализации, влияющих на внешний вид диалогового окна.
WM_NEXTDLGCTL Отправляется в процедуру диалогового окна для установки фокуса клавиатуры на другой элемент управления в диалоговом окне.

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

Имя Описание
DLGITEMTEMPLATE Определяет размеры и стиль элемента управления в диалоговом окне. Одна или несколько из этих структур объединяются со структурой DLGTEMPLATE для формирования стандартного шаблона для диалогового окна.
DLGITEMTEMPLATEEX Описывает расширенное диалоговое окно. Описание формата расширенного шаблона диалогового окна см. в разделе DLGTEMPLATEEX.
DLGTEMPLATE Определяет размеры и стиль диалогового окна. Эта структура, которая всегда является первой в стандартном шаблоне диалогового окна, также указывает количество элементов управления в диалоговом окне и, следовательно, количество последующих структур DLGITEMTEMPLATE в шаблоне.
DLGTEMPLATEEX Расширенный шаблон диалогового окна начинается с заголовка DLGTEMPLATEEX , который описывает диалоговое окно и указывает количество элементов управления в диалоговом окне. Для каждого элемента управления в диалоговом окне расширенный шаблон диалогового окна содержит блок данных, в котором для описания элемента управления используется формат DLGITEMTEMPLATEEX .
MSGBOXPARAMS Содержит сведения, используемые для отображения окна сообщения. Эта структура используется в функции MessageBoxIndirect .