马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
注:本文档由 Diu 翻译,小甲鱼校对。
消息含义:
当用户从窗口菜单(前身叫做系统菜单或控制菜单)选择一个命令或者当用户选择最大化按钮,最小化按钮,恢复按钮或关闭按钮时,消息接收窗口便会收到这种消息。
消息定义:
#define WM_SYSCOMMAND 0x0112
参数解析:
wParam:指定被请求的系统命令的类型,可以是下列值中的一个。
值 | 含义 | SC_CLOSE(0xF060) | 关闭窗口 | SC_CONTEXTHELP(0xF180) | 将鼠标光标改变为一个带有指针的问号。如果用户单击对话框中的控件,这个控件将会接受到一条 WM_HELP 消息 | SC_DEFAULT(0xF160) | 选择默认菜单项;用户双击窗口菜单 | SC_HOTKEY(0xF150) | 激活与该应用程序指定热键关联的窗口,lParam 参数标识要激活的窗口 | SC_HSCROLL(0xF080) | 水平滚动 | SCF_ISSECURE(0x00000001) | 指示屏幕保护程序是否是安全的 | SC_KEYMENU(0xF100) | 将窗口菜单作为一个按键的结果;更多有关信息请参见备注部分 | SC_MAXIMIZE(0xF030) | 将窗口最大化 | SC_MINIMIZE(0xF020) | 将窗口最小化 | SC_MONITORPOWER(0xF170) | 1. 设置显示的状态
2. 此命令支持具有节电功能特性的设备,如电池供电的个人计算机 | SC_MOUSEMENU(0xF090) | 将窗口菜单作为一个鼠标单击的结果 | SC_MOVE(0xF010) | 移动窗口 | SC_NEXTWINDOW(0xF040) | 移动到下一个窗口 | SC_PREVWINDOW(0xF050) | 移动到上一个窗口 | SC_RESTORE(0xF120) | 将窗口恢复到正常的位置和大小 | SC_SCREENSAVE(0xF140) | 执行在 System.ini 文件的 [boot] 段指定的屏幕保护程序 | SC_SIZE(0xF000) | 改变窗口的大小 | SC_TASKLIST(0xF130) | 激活开始菜单 | SC_VSCROLL(0xF070) | 垂直滚动 |
lParam:
在屏幕坐标中,如果用鼠标选择窗口菜单命令。lParam 的低位字指定指针的水平位置,否则,不使用此参数。
在屏幕坐标中,如果用鼠标选择窗口菜单命令。lParam 的高位字指定指针的垂直位置,如果一个命令是通过系统加速器选择的,那么这个参数值为 -1,如果是通过助记符选择的,则为 0。
返回值:
如果处理这个消息,应用程序应该返回 0。
备注:
1. 使用下面的代码来获取屏幕坐标中的位置坐标:xPos = GET_X_LPARAM(lParam); // 水平位置
yPos = GET_Y_LPARAM(lParam); // 垂直位置
2. DefWindowProc 函数以预定义的行为执行上表中指定的窗口菜单请求。
3. 在 WM_SYSCOMMAND 消息中,wParam 的四个低序位是由系统内部使用的,当测试 wParam 的值时,为了获取正确的结果,应用程序必须将 0xFFF0 和 wParam 的值进行按位 AND 操作。
4. 使用 GetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItem 和 SetMenuItemInfo 函数能够修改窗口菜单中的菜单项,修改窗口菜单的应用程序必须处理 WM_SYSCOMMAND 消息。
5. 应用程序可以在任何时间通过传递一个 WM_SYSCOMMANG 消息给 DefWindowProc 来执行系统命令,任何没有被程序处理的 WM_SYSCOMMAND 消息必须传递给 DefWindowProc。由应用程序添加任何命令值必须由应用程序处理,并且不能被传递给 DefWindowProc。
6. 如果启用密码保护策略,无论应用程序对 SC_SCREENSAVE 通知做什么处理——甚至未能将其传递给 DefWindowProc,屏幕保护程序都会启动。
7. 被定义从窗口菜单选取菜单项的加速键会被转换成 WM_SYSCOMMAD 消息,其他的加速键按键消息将被转换为 WM_COMMAND 消息。
8. 如果 wParam 值为 SC_KEYMENU,lParam 参数会包含与 ALT 键一同使用来显示弹出式菜单的
键的字符代码。例如,按 ALT + F 来显示文件弹出式菜单将会引发一个 WM_SYSCOMMAND 消息,其中 wParam 等于 SC_KEYMENU,lParam 等于 'f'。
需求:
最小支持客户端 | Windows 2000 专业版 [仅桌面应用程序] | 最小支持服务器端 | Windows 2000 服务器版 [仅桌面应用程序] | 头文件 | Winuser.h(包含于 Windows.h) |
【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
|