defMDIChildProcW 函数 (winuser.h)
为多文档界面的窗口过程 (MDI) 子窗口不处理的任何窗口消息提供默认处理。 窗口过程未处理的窗口消息必须传递给 DefMDIChildProc 函数,而不是 DefWindowProc 函数。
语法
LRESULT LRESULT DefMDIChildProcW(
[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 应用程序使用 DefFrameProc 和 DefMDIChildProc 函数而不是 DefWindowProc 来提供默认消息处理。 应用程序通常传递给 DefWindowProc 的所有消息 ((如非客户端消息和 WM_SETTEXT 消息) )应改为传递到 DefMDIChildProc 。 此外, DefMDIChildProc 还处理以下消息。
Message | 响应 |
---|---|
WM_CHILDACTIVATE | 在调整 MDI 子窗口大小、移动或显示时执行激活处理。 必须传递此消息。 |
WM_GETMINMAXINFO | 根据 MDI 客户端窗口的当前大小计算最大化的 MDI 子窗口的大小。 |
WM_MENUCHAR | 将消息传递到 MDI 框架窗口。 |
WM_MOVE | 重新计算 MDI 客户端滚动条(如果存在)。 |
WM_SETFOCUS | 如果子窗口不是活动的 MDI 子窗口,则激活子窗口。 |
WM_SIZE | 执行更改窗口大小所需的操作,尤其是在最大化或还原 MDI 子窗口时。 未能将此消息传递到 DefMDIChildProc 函数会产生非常不理想的结果。 |
WM_SYSCOMMAND | 处理窗口菜单命令: SC_NEXTWINDOW、 SC_PREVWINDOW、 SC_MOVE、 SC_SIZE和 SC_MAXIMIZE。 |
注意
winuser.h 标头将 DefMDIChildProc 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
请参阅
概念性
引用