CWnd::OnSysCommand

afx_msg void OnSysCommand( UINT nID, LPARAM lParam );

参数:
nID指定了请求的系统命令的类型。这个参数可以是下列值之一:
SC_CLOSE关闭CWnd对象。
SC_HOTKEY激活与应用程序指定的热键相关的CWnd对象。lParam的低位字标识了要激活的窗口的HWND句柄。
SC_HSCROLL水平滚动。
SC_KEYMENU通过击键获得菜单。
SC_MAXIMIZE (或SC_ZOOM)最大化CWnd对象。
SC_MINIMIZE (或SC_ICON)最小化CWnd对象。
SC_MOUSEMENU通过鼠标点击获得菜单。
SC_MOVE移动CWnd对象。
SC_NEXTWINDOW移动到下一个窗口。
SC_PREVWINDOW移动到前一个窗口。
SC_RESTORE将窗口恢复为普通的位置和大小。
SC_SCREENSAVE执行SYSTEM.INI文件中[boot]部分指定的屏幕保护应用程序。
SC_SIZE调整CWnd对象的大小。
SC_TASKLIST执行或激活Windows的任务管理器应用程序。
SC_VSCROLL垂直滚动。
lParam如果控制菜单是通过鼠标选择的,则lParam中包含了光标的位置。低位字包含了x轴坐标,高位字包含了y轴坐标;否则这个参数没有使用。
·SC_HOTKEY激活与应用程序指定的热键相关的窗口。lParam的低位字标识了要激活的窗口。
·SC_SCREENSAVE在控制面板的桌面部分执行屏幕保护应用程序。

说明:
当用户从控制菜单选择了一个命令,或者用户选择了最大化户最小化按钮时,框架调用这个函数。
在缺省情况下,OnSysCommand执行控制菜单对前面表格中描述的预定义动作的请求。
在WM_SYSCOMMAND消息中,nID参数的低四位被Windows内部使用。当应用程序测试nID的值时,它必须用位与操作符AND将值0xFFF0与nID的值组合在一起以获得正确的结果。
控制菜单中的菜单项可以用GetSystemMenu,AppendMenu,InsertMenu和ModifyMenu成员函数来修改。修改了控制菜单的应用程序必须处理WM_SYSCOMMAND消息,并且应用程序没有处理的任何WM_SYSCOMMAND消息都必须被发送给OnSysCommand。应用程序加入的任何命令值必须由应用程序处理,并且不能被传递给OnSysCommand
应用程序可以在任何时候通过向OnSysCommand发送WM_SYSCOMMAND消息来执行任何系统命令。
为选择控制菜单中的项的加速键(快捷方式)被转换为OnSysCommand调用;所有其它的加速键被转换为WM_COMMAND消息。
注意 框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。

请参阅:WM_SYSCOMMAND