Поделиться через


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

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

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

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

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

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

Имя Описание
CreateDialog Создает диалоговое окно без режима из ресурса шаблона диалогового окна.
CreateDialogIndirect Создает диалоговое окно без режима из шаблона диалогового окна в памяти.
CreateDialogIndirectParam Создает диалоговое окно без режима из шаблона диалогового окна в памяти. Перед отображением диалогового окна функция передает определяемое приложением значение в процедуру диалогового окна в качестве параметра lParam сообщения WM_INITDIALOG. Приложение может использовать это значение для инициализации элементов управления диалоговым окном.
CreateDialogParam Создает диалоговое окно без режима из ресурса шаблона диалогового окна. Перед отображением диалогового окна функция передает определяемое приложением значение в процедуру диалогового окна в качестве параметра lParam сообщения WM_INITDIALOG. Приложение может использовать это значение для инициализации элементов управления диалоговым окном.
DefDlgProc Вызывает процедуру диалогового окна по умолчанию, чтобы обеспечить обработку по умолчанию для любых сообщений окна, которые диалоговое окно с классом закрытого окна не обрабатывает.
DialogBox Создает модальное диалоговое окно из ресурса шаблона диалогового окна. 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 Создает, отображает и управляет окном сообщения. Поле сообщения содержит определенное приложением сообщение и заголовок, а также любое сочетание предопределенных значков и кнопок push-уведомлений. Кнопки находятся на языке системного пользовательского интерфейса.
MessageBoxIndirect Создает, отображает и управляет окном сообщения. Поле сообщения содержит текст сообщения и название приложения, любой значок и любую комбинацию предопределенных кнопок.
SendDlgItemMessage Отправляет сообщение указанному элементу управления в диалоговом окне.
SetDlgItemInt Задает текст элемента управления в диалоговом окне строковым представлением указанного целочисленного значения.
SetDlgItemText Задает заголовок или текст элемента управления в диалоговом окне.

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

Имя Описание
DM_GETDEFID Извлекает идентификатор элемента управления кнопки по умолчанию для диалогового окна.
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 использует эту структуру.