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定義為別名,根據UNICODE預處理器常數的定義,自動選取此函式的ANSI或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-dialogbox-l1-1-3 (Windows 10 10.0.14393 版) |
另請參閱
概念
參考