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


Функция 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 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка 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