DefFrameProc功能为多文档界面(MDI)框架窗口的窗口过程不处理的任何窗口消息提供默认处理。窗口过程未显式处理的所有窗口消息必须传递给DefFrameProc函数,而不是DefWindowProc函数。
LRESULT DefFrameProc(
HWND 【的hWnd】, | //处理MDI框架窗口 |
HWND 【hWndMDIClient】, | //处理MDI客户端窗口 |
UINT 【uMsg】, | // 信息 |
WPARAM 【wParam中】, | //第一个消息参数 |
LPARAM 【lParam的】 | //第二个消息参数 |
); |
参数
【的hWnd】
标识MDI框架窗口。
【hWndMDIClient】
标识MDI客户端窗口。
【uMsg】
指定要处理的消息。
【wParam中】
指定附加的消息特定信息。
【lParam的】
指定附加的消息特定信息。
返回值
返回值指定消息处理的结果,并取决于消息。如果【hWndMDIClient】参数为NULL,返回值与DefWindowProc函数相同。
备注
当应用程序的窗口过程不处理消息时,通常会将消息传递给DefWindowProc函数来处理消息。MDI应用程序使用DefFrameProc和DefMDIChildProc函数而不是DefWindowProc来提供默认消息处理。应该将应用程序通常传递给DefWindowProc(例如非客户消息和WM_SETTEXT消息)的所有消息都应传递给DefFrameProc.DefFrameProc功能还处理以下消息:
信息 | 响应 |
WM_COMMAND | 激活用户选择的MDI子窗口。当用户从MDI框架窗口的Window菜单中选择MDI子窗口时,会发送此消息。伴随此消息的窗口标识符标识要启动的MDI子窗口。 |
WM_MENUCHAR | 当用户按ALT + - (减号)组合键时,打开活动MDI子窗口的窗口菜单。 |
WM_SETFOCUS | 将键盘焦点传递到MDI客户端窗口,然后将其传递给活动的MDI子窗口。 |
WM_SIZE | 调整MDI客户端窗口以适应新的框架窗口的客户端区域。如果框架窗口过程将MDI客户端窗口大小设置为不同的大小,则不应将消息传递给DefWindowProc函数。 |
也可以看看