程序说明:
系统菜单是用户右键点击标题栏时弹出的快捷菜单。默认情况下,系统菜单只包括移动、关闭和关于对话框菜单项,本例是如何在系统菜单中添加自己的菜单项。
主要函数:
本例中主要用到的函数有两个:GetSystemMenu和AppendMenu
1、GetSystemMenu
函数功能:该函数允许应用程序为复制或修改而访问窗口菜单(系统菜单或控制菜单)。 GetSystemMenu方法获得一个系统菜单指针,语法如下:
CMenu* GetSystemMenu( BOOL bRevert ) const;
参数说明:
bRevert:指定将执行的操作。如果此参数为FALSE,GetSystemMenu返回当前使用窗口菜单的拷贝的句柄。该拷贝初始时与窗口菜单相同,但可以被修改。
如果此参数为TRUE,GetSystemMenu重置窗口菜单到缺省状态。如果存在先前的窗口菜单,将被销毁。
返回值:如果参数bRevert为FALSE,返回值是窗口菜单的拷贝的句柄:如果参数bRevert为TRUE,返回值是NULL。
备注:任何没有用GetSystemMenu函数来生成自己的窗口菜单拷贝的窗口将接受标准窗口菜单。
窗口菜单最初包含的菜单项有多种标识符值,如SC_CLOSE,SC_MOVE和SC_SIZE。
窗口菜单上的菜单项发送WM_SYSCOMMAND消息。
所有预定义的窗口菜单项的标识符数大于0xF000。如果一个应用程序增加命令到窗口菜单,应该使用小于0xF000的标识符数。
系统根据状态自动变灰标准窗口菜单上的菜单项。应用程序通过响应在任何某单显示之前发送的WM_INITMENU消息来实现选取和变灰。