共用方式為


DLGPROC 回呼函式 (winuser.h)

應用程式定義的回呼函式,搭配 CreateDialogDialogBox 函式系列使用。 它會處理傳送至強制回應或無模式對話方塊的訊息。 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 之前立即呼叫 SetWindowLonghwndDlgDWL_MSGRESULTlResult) 來設定所需的傳回值。 請注意,您必須在傳回 TRUE 之前立即呼叫 SetWindowLong;稍早執行此動作可能會導致巢狀對話方塊訊息覆寫DWL_MSGRESULT值。

以下消息是上述一般規則的例外情況。 請參閱特定訊息的檔案,以取得傳回值語意的詳細資訊。

備註

備註

參數定義在標頭中,沒有名稱: typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);。 因此,語法區塊會將它們列為 unnamedParam1 - unnamedParam4。 您可以在應用程式中為這些參數命名任何名稱。 但是,它們通常按照參數描述中所示命名。

只有當您使用對話方塊的對話方塊類別時,才應該使用對話方塊程式。 這是預設類別,當對話方塊範本中未指定明確類別時會使用。 雖然對話框程式類似於視窗程式,但它不得呼叫 DefWindowProc 函式來處理不需要的訊息。 不需要的訊息會由對話框視窗程序在內部處理。

需求

Requirement 價值觀
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
Header winuser.h (包括 Windows.h)

另請參閱

概念

對話方塊

WM_INITDIALOG

參考

建立對話方塊

CreateDialog間接

CreateDialogIndirectParam

CreateDialogParam

DefWindowProc

對話框

DialogBox間接

DialogBoxIndirectParam

DialogBox參數

設定焦點