DefMDIChildProc函数为多文档界面(MDI)子窗口的窗口过程不处理的任何窗口消息提供默认处理。窗口过程未处理的窗口消息必须传递给DefMDIChildProc函数,而不是DefWindowProc函数。
LRESULT DefMDIChildProc(
HWND 【的hWnd】, | //处理MDI子窗口 |
UINT 【uMsg】, | // 信息 |
WPARAM 【wParam中】, | //第一个消息参数 |
LPARAM 【lParam的】 | //第二个消息参数 |
); |
参数
【的hWnd】
标识MDI子窗口。
【uMsg】
指定要处理的消息。
【wParam中】
指定附加的消息特定信息。
【lParam的】
指定附加的消息特定信息。
返回值
返回值指定消息处理的结果,并取决于消息。
备注
DefMDIChildProc函数假定由【的hWnd】参数标识的MDI子窗口的父窗口是使用MDICLIENT类创建的。
当应用程序的窗口过程不处理消息时,通常会将消息传递给DefWindowProc函数来处理消息。MDI应用程序使用DefFrameProc和DefMDIChildProc函数而不是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_NEXTWINDOW,SC_PREVWINDOW,SC_MOVE,SC_SIZE和SC_MAXIMIZE。 |
也可以看看
DefFrameProc, DefWindowProc, WM_CHILDACTIVATE, WM_GETMINMAXINFO, WM_MENUCHAR, WM_MOVE, WM_SETFOCUS, WM_SETTEXT, WM_SIZE, WM_SYSCOMMAND