應用程式定義的回呼函式,搭配 CreateDialog 和 DialogBox 函式系列使用。 它會處理傳送至強制回應或無模式對話方塊的訊息。 DLGPROC 類型會定義此回呼函式的指標。 DialogProc 是應用程式定義函式名稱的預留位置。
語法
DLGPROC Dlgproc;
INT_PTR Dlgproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
參數
unnamedParam1
類型:HWND
對話方塊的控點。 此參數通常命名為 hWnd。
unnamedParam2
類型: UINT
訊息。 此參數通常命名為 uMsg。
unnamedParam3
類型: WPARAM
其他訊息特定資訊。 此參數通常命名為 wParam。
unnamedParam4
類型: LPARAM
其他訊息特定資訊。 此參數通常命名為 lParam。
返回值
類型: INT_PTR
一般而言,對話方塊程式如果處理訊息,則應傳回 TRUE ,如果未處理訊息,則應傳回 FALSE 。 如果對話框程序傳回 FALSE,對話管理員會執行預設對話方塊作業以回應訊息。
如果對話框程式處理需要特定傳回值的訊息,對話框程式應該在傳回 TRUE 之前立即呼叫 SetWindowLong (hwndDlg, DWL_MSGRESULT, lResult) 來設定所需的傳回值。 請注意,您必須在傳回 TRUE 之前立即呼叫 SetWindowLong;稍早執行此動作可能會導致巢狀對話方塊訊息覆寫DWL_MSGRESULT值。
以下消息是上述一般規則的例外情況。 請參閱特定訊息的檔案,以取得傳回值語意的詳細資訊。
- WM_CHARTOITEM
- WM_COMPAREITEM
- WM_CTLCOLORBTN
- WM_CTLCOLORDLG
- WM_CTLCOLOREDIT
- WM_CTLCOLORLISTBOX
- WM_CTLCOLORSCROLLBAR
- WM_CTLCOLORSTATIC
- WM_INITDIALOG
- WM_QUERYDRAGICON
- WM_VKEYTOITEM
備註
備註
參數定義在標頭中,沒有名稱: typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);。 因此,語法區塊會將它們列為 unnamedParam1 - unnamedParam4。 您可以在應用程式中為這些參數命名任何名稱。 但是,它們通常按照參數描述中所示命名。
只有當您使用對話方塊的對話方塊類別時,才應該使用對話方塊程式。 這是預設類別,當對話方塊範本中未指定明確類別時會使用。 雖然對話框程式類似於視窗程式,但它不得呼叫 DefWindowProc 函式來處理不需要的訊息。 不需要的訊息會由對話框視窗程序在內部處理。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
| 支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
| 目標平臺 | 窗戶 |
| Header | winuser.h (包括 Windows.h) |
另請參閱
概念
參考