共用方式為


DefMDIChildProcA 函式 (winuser.h)

提供多文檔介面 (MDI) 子視窗程式未處理之任何視窗訊息的默認處理。 視窗程式未處理的視窗訊息必須傳遞至 DefMDIChildProc 函式,而不是 DefWindowProc 函式。

語法

LRESULT LRESULT DefMDIChildProcA(
  [in] HWND   hWnd,
  [in] UINT   uMsg,
  [in] WPARAM wParam,
  [in] LPARAM lParam
);

參數

[in] hWnd

類型:HWND

MDI 子視窗的句柄。

[in] uMsg

類型:UINT

要處理的訊息。

[in] wParam

類型:WPARAM

其他訊息特定資訊。

[in] lParam

類型:LPARAM

其他訊息特定資訊。

傳回值

類型:LRESULT

傳回值會指定訊息處理的結果,並視訊息而定。

言論

DefMDIChildProc 函式假設 hWnd 參數所識別的 MDI 子視窗的父視窗是使用 MDICLIENT 類別所建立。

當應用程式的視窗程式未處理訊息時,通常會將訊息傳遞至 DefWindowProc 函式來處理訊息。 MDI 應用程式會使用 DefFrameProcDefMDIChildProc 函式,而不是 DefWindowProc 來提供預設訊息處理。 應用程式通常會傳遞至 DefWindowProc(例如非用戶端訊息和 WM_SETTEXT 訊息)的所有訊息都應該改為傳遞至 defMDIChildProc 。 此外,DefMDIChildProc 也會處理下列訊息。

消息 回應
WM_CHILDACTIVATE 當 MDI 子視窗的大小、移動或顯示時,執行啟用處理。 必須傳遞此訊息。
WM_GETMINMAXINFO 根據 MDI 用戶端視窗的目前大小,計算最大化 MDI 子視窗的大小。
WM_MENUCHAR 將訊息傳遞至 MDI 框架視窗。
WM_MOVE 如果 MDI 用戶端滾動條存在,請重新計算它們。
WM_SETFOCUS 如果子視窗不是使用中的 MDI 子視窗,則會啟動子視窗。
WM_SIZE 執行變更視窗大小所需的作業,特別是為了最大化或還原 MDI 子視窗。 無法將此訊息傳遞至 DefMDIChildProc 函式會產生高度不想要的結果。
WM_SYSCOMMAND 處理視窗功能表命令:SC_NEXTWINDOWSC_PREVWINDOWSC_MOVESC_SIZESC_MAXIMIZE
 

注意

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

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winuser.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll

另請參閱

概念

DefFrameProc

DefWindowProc

多個檔介面

參考

WM_CHILDACTIVATE

WM_GETMINMAXINFO

WM_MENUCHAR

WM_MOVE

WM_SETFOCUS

WM_SETTEXT

WM_SIZE

WM_SYSCOMMAND