- 菜单项的修改:
- 在程序运行中可以动态修改菜单性,包括添加、删除和修改操作。
- 使用几个API来进行操作,这个可以先进行略过,需要时阅读有关书籍即可。
- 使用系统菜单:
- 系统菜单的介绍:如下就是系统菜单。
- 系统菜单的创建:
WM_CREATE是窗口创建CreateWindow时,系统给消息处理程序发送的消息,每次窗口创建,有且只有1个WM_CREATE消息,所以只运行1次,可以在这里初始化滚动条,获取字体宽度、高度,创建子窗口、控件等等。
- 系统命令的处理:简单的来进行命令处理。
- 系统菜单的介绍:如下就是系统菜单。
- 右键弹出菜单:
- 我们的目标是:在客户区按下右键时,鼠标右上角会弹出系统菜单。
- 所以该程序分解为三步:检测按下右键、检测鼠标坐标、在该坐标处弹出菜单。
- 代码解释:可以看出x,y坐标,有关内容看详解就好:
- 菜单状态的检测和设置:
- 对菜单项的状态进行设置的原因:比如,粘贴版中没有数据时,“粘贴”是灰色的;窗口中没有被选中的字符串时,“拷贝”菜单也应该是绘画的,这样可以给使用者一个善意的提醒。同时,对菜单的状态也常常需要检测,看看菜单项的状态一遍进行下一步操作。
- 菜单项状态的检测:
- 菜单项的设置状态函数:存在三种,分别是 菜单项的[禁用,灰化等]、菜单项对号(非互斥)、菜单项的圆圈(互斥)
- EnableMenuItem 函数:
- CheckMenuItem 函数: 对号非互斥操作
- CheckMenuRadioItem 函数:圆圈互斥
- EnableMenuItem 函数:
- 代码解读:
- 其他菜单函数:
- 菜单不一定非要在资源文件中定义,在程序中也可以用代码来建立菜单,不过比较麻烦。
- 使用菜单后涉及清除问题,与窗口相连的菜单句柄在窗口摧毁时自动由Windows系统释放,不需要手工操作,但没有与窗口相连的菜单就要由程序自己释放出来,使用 DestoryMenu,比如没有与窗口相连而仅用 TrackPopupMenu弹出的菜单句柄。
win32 5.1 菜单的修改、使用系统菜单、右键弹出菜单、菜单状态的检测和设置、其他菜单函数
最新推荐文章于 2024-07-26 17:13:21 发布