DefFrameProcW 函数 (winuser.h)
为多文档界面(MDI)框架窗口的窗口过程未处理的任何窗口消息提供默认处理。 窗口过程未显式处理的所有窗口消息都必须传递给 DefFrameProc 函数,而不是 DefWindowProc 函数。
语法
LRESULT DefFrameProcW(
[in] HWND hWnd,
[in] HWND hWndMDIClient,
[in] UINT uMsg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
参数
[in] hWnd
类型:HWND
MDI 帧窗口的句柄。
[in] hWndMDIClient
类型:HWND
MDI 客户端窗口的句柄。
[in] uMsg
类型:UINT
要处理的消息。
[in] wParam
类型:WPARAM
其他特定于消息的信息。
[in] lParam
类型:LPARAM
其他特定于消息的信息。
返回值
类型:LRESULT
返回值指定消息处理的结果,并取决于消息。 如果 hWndMDIClient 参数 NULL,则返回值与 DefWindowProc 函数的返回值相同。
言论
当应用程序的窗口过程不处理消息时,它通常会将消息传递给 DefWindowProc 函数来处理消息。 MDI 应用程序使用 DefFrameProc 和 DefMDIChildProc 函数,而不是 DefWindowProc 提供默认消息处理。 应用程序通常传递给 DefWindowProc(如非客户端消息和 WM_SETTEXT 消息)的所有消息都应改为传递到 defFrameProc 。 DefFrameProc 函数还处理以下消息。
消息 | 响应 |
---|---|
WM_COMMAND | 激活用户选择的 MDI 子窗口。 当用户从 MDI 框架窗口的窗口菜单中选择 MDI 子窗口时,将发送此消息。 此消息随附的窗口标识符标识要激活的 MDI 子窗口。 |
WM_MENUCHAR | 当用户按下 Alt+ - (减)组合键时,打开活动 MDI 子窗口的窗口菜单。 |
WM_SETFOCUS | 将键盘焦点传递到 MDI 客户端窗口,后者又将其传递给活动 MDI 子窗口。 |
WM_SIZE | 调整 MDI 客户端窗口的大小以适应新框架窗口的工作区。 如果框架窗口过程将 MDI 客户端窗口的大小调整为不同的大小,则它不应将消息传递给 DefWindowProc 函数。 |
注意
winuser.h 标头将 DefFrameProc 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | winuser.h (包括 Windows.h) |
库 | User32.lib |
DLL | User32.dll |
另请参阅
概念
参考