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


Функция IsDialogMessageA (winuser.h)

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

Синтаксис

BOOL IsDialogMessageA(
  [in] HWND  hDlg,
  [in] LPMSG lpMsg
);

Параметры

[in] hDlg

Тип: HWND

Дескриптор диалогового окна.

[in] lpMsg

Тип: LPMSG

Указатель на структуру MSG , содержащую проверяемое сообщение.

Возвращаемое значение

Тип: BOOL

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

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

Комментарии

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

Когда IsDialogMessage обрабатывает сообщение, он проверяет наличие сообщений с клавиатуры и преобразует их в выделенные элементы для соответствующего диалогового окна. Например, при нажатии клавиши TAB выбирается следующий элемент управления или группа элементов управления, а при нажатии клавиши СТРЕЛКА ВНИЗ выбирается следующий элемент управления в группе.

Так как функция IsDialogMessage выполняет все необходимые операции перевода и отправки сообщений, сообщение, обрабатываемое IsDialogMessage , не должно передаваться функции TranslateMessage или DispatchMessage .

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

IsDialogMessage может отправлять DM_GETDEFID и DM_SETDEFID сообщения в окно. Эти сообщения определяются в файле заголовка Winuser.h как WM_USER и WM_USER + 1, поэтому возможны конфликты с сообщениями, определяемыми приложением, имеющими одинаковые значения.

Примечание

Заголовок winuser.h определяет IsDialogMessage в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-dialogbox-l1-1-3 (представлен в Windows 10 версии 10.0.14393)

См. также раздел

Основные понятия

DM_GETDEFID

DM_SETDEFID

Диалоговые окна

DispatchMessage

MSG

Справочные материалы

TranslateMessage

WM_GETDLGCODE

WM_USER