win32 5.1 菜单的修改、使用系统菜单、右键弹出菜单、菜单状态的检测和设置、其他菜单函数

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值