Функция IsDialogMessage определяет ли сообщение предназначено для указанного диалогового окна и, если это, обрабатывает сообщение.
(BOOL IsDialogMessage HWND hDlg, / / обработать диалогового окнаLPMSGlpMsg / / адрес структуры с сообщением);
Если сообщение было обработано, возвращаемое значение не равно нулю.
Если сообщение не было обработано, возвращаемое значение равно нулю.
Хотя функция IsDialogMessage предназначен для немодальные диалоговые окна, можно использовать его с какой-либо окно, которое содержит элементы управления, что позволяет windows для предоставления же выбор клавиатуры также используется в диалоговом окне.
Когда IsDialogMessage обрабатывает сообщение, он проверяет сообщения клавиатуры и преобразует их в команды выделения для соответствующего диалогового окна. Например при нажатии клавиши tab выбирает следующий элемент управления или группы элементов управления, и вниз стрелка, когда нажата, выбирает следующий элемент в группе.
Потому что IsDialogMessage функция выполняет все необходимые перевода и направления сообщений, сообщения, обрабатываемые IsDialogMessage не должны передаваться в TranslateMessage или DispatchMessage функции.
IsDialogMessage отправляет сообщения WM_GETDLGCODE процедуру диалогового окна для определения, какие ключи должны быть обработаны.
IsDialogMessage могут отправлять сообщения DM_GETDEFID и DM_SETDEFID в окно. Эти сообщения определены в WINUSER.H заголовочный файл как WM_USER и WM_USER + 1, так что конфликты возможны с приложением сообщения, имеющие одинаковые значения.
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.
Диалоговое окно Обзор коробки, MSG функции диалога Box, DispatchMessage, DM_GETDEFID, DM_SETDEFID, TranslateMessage, WM_GETDLGCODE, WM_USER