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 函数假定使用 MDICLIENT 类创建由 hWnd 参数标识的 MDI 子窗口的父窗口。

当应用程序的窗口过程不处理消息时,它通常会将消息传递给 DefWindowProc 函数来处理消息。 MDI 应用程序使用 DefFrameProcDefMDIChildProc 函数,而不是 DefWindowProc 提供默认消息处理。 应用程序通常传递给 DefWindowProc(如非client 消息和 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 标头将 DefMDIChildProc 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 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