共用方式為


IsDialogMessageA 函式 (winuser.h)

判斷訊息是否適用於指定的對話方塊,如果為 ,則會處理訊息。

語法

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

參數

[in] hDlg

類型:HWND

對話框的句柄。

[in] lpMsg

類型:LPMSG

包含要檢查之訊息的 MSG 結構的指標。

傳回值

類型:BOOL

如果訊息已處理,則傳回值為非零值。

如果尚未處理訊息,則傳回值為零。

言論

雖然 IsDialogMessage 函式適用於無模式對話方塊,但您可以將它與包含控件的任何視窗搭配使用,讓視窗提供與對話框中所使用的相同鍵盤選取專案。

IsDialogMessage 處理訊息時,它會檢查鍵盤訊息,並將其轉換成對應對話框的選取專案。 例如,按下 TAB 鍵時,會選取下一個控件或控件群組,按下向下鍵時,選取群組中的下一個控件。

因為 IsDialogMessage 函式會執行所有必要的轉譯和分派訊息,因此 IsDialogMessage 所處理的訊息不得傳遞 至 translateMessageDispatchMessage 函式。

IsDialogMessage 會將 WM_GETDLGCODE 訊息傳送至對話框程式,以判斷應該處理的索引鍵。

IsDialogMessage 可以將 DM_GETDEFIDDM_SETDEFID 訊息傳送至視窗。 這些訊息會在 Winuser.h 頭檔中定義為 WM_USERWM_USER + 1,因此應用程式定義的訊息可能會有相同的值。

注意

winuser.h 標頭會將IsDialogMessage定義為別名,根據UNICODE預處理器常數的定義,自動選取此函式的ANSI或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 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