菜单事件——通知消息
菜单的单击事件可以在设计菜单的时候双击菜单列表项目进行绑定
其它的菜单事件都可以交给"处理窗口"这个函数自动完成,下面演示几种常用的菜单操作:
1.控制菜单项选中或者禁用
菜单复选(菜单,1001,8)
控制编号为1001的菜单选中第一个窗体的菜单编号是从1001开始排序,一级菜单和弹出式菜单不计编号,只算可以点击的菜单
最后参数: 0是不选,1是灰色,2是禁用,8是选中,$400相对菜单项
菜单复选(菜单,1,$408)
控制相对位置为1的菜单选中使用相对菜单项$400加上其它功能,然后控制第几个菜单,从0开始排序
2.托盘或控件右键事件弹出菜单
展示菜单(菜单.1,0,左,顶,窗口,0)
第一个一级菜单就叫菜单.1第二个一级菜单就叫菜单.2,设计菜单的时候主菜单名称为空就不会在窗体上显示
中文名字 | 常量数值 | 英文名称 | 释义 |
初始菜单 | $0116 | WM_INITMENU | 当一个菜单将被激活时发送本消息,它发生在用户点击了某菜单项或 按下某菜单键。它允许程序在显示前更改菜单。 ③参数:菜单;④数据:0 |
弹出菜单 | $0117 | WM_INITMENUPOPUP | 当一个下拉菜单或子菜单将被激活时发送本消息,它允许程序在它 显示前更改菜单,却不更改全部菜单。 ③参数:菜单;④数据:低位=序号,高位=是否菜单 |
选择菜单 | $011F | WM_MENUSELECT | 当用户选择一条菜单项时,发送本消息给菜单的所有者(一般是窗口)。 ③参数:低位=序号,高位=标志;④数据:菜单 |
菜单激活 | $0120 | WM_MENUCHAR | 当菜单已被激活且用户按下了某菜单字符键 (括号括着、带下划线,不同于快捷键)。 ③参数:低位=序号,高位=标志$10弹出菜单,$2000菜单; ④数据:菜单; |
菜单右键 | $0122 | WM_MENURBUTTONUP | 本消息允许程序为菜单项提供一个感知上下文的菜单(即快捷菜单)。 ③参数:序号;④数据:菜单 |
菜单点击 | $0123 | WM_MENUDRAG | 当用户拖动菜单项时,发送本消息给拖放菜单的拥有者,可让菜单支持 拖拽可使用OLE拖放传输协议启动拖放操作。 ③参数:序号;④数据:菜单;返回0保持活动,1菜单结束 |
单击菜单 | $0126 | WM_MENUCOMMAND | 当用户在一个菜单上作出选择时,会发送本消息,菜单要具有 MNS_NOTIFYBYPOS风格(在MENUINFO结构体中设置)。 ③参数:序号;④数据:菜单 |
进入菜单循环 | $211 | WM_ENTERMENULOOP | 发送本消息通知应用程序的主窗口已进入菜单循环模式。 ③参数:是否显示菜单;④数据:0 |
退出菜单循环 | $212 | WM_EXITMENULOOP | 发送本消息通知应用程序的主窗口已退出菜单循环模式。 ③参数:是否快捷菜单;④数据:0 |
菜单切换 | $213 | WM_NEXTMENU | 当使用左箭头光标键或右箭头光标键在菜单条与系统菜单之间切换时 触发本消息,③参数:键码;④数据:MDINEXTMENU |