zoukankan      html  css  js  c++  java
  • MFC的UI更新机制和加速键的创建

           最近在看《MFC Windows程序设计》这本书,正好看到更新菜单中的菜单项和添加菜单项的加速键这方面的内容,以下总一下总结。

    MFC提供的更新菜单项的机制如下:

         通过消息映射表中的ON_UPDATE_COMMAND_UI宏,可以给单个的菜单项分配选中的成员函数作为更新处理函数,当用户点中一个下拉菜单时,MFC捕获随之发生的WM_INITMENUPOPUP消息,并调用菜单中的所有菜单项的更新处理函数。每个更新处理函数获得一个指向CCmdUI对象的指针,并利用该对象的成员处理函数更新菜单项。

      顺便介绍一下CCmdUI类

    下面是该类的部分成员函数:

    void Enable( BOOL bOn = TRUE );

    Enables or disables the user-interface item for this command.

    使界面的菜单项等有效或者失效。当参数bOn = TRUE的时候,使菜单项有效,反之,使无效。

    void SetCheck( int nCheck = 1 );

    Sets the check state of the user-interface item for this command

    Specifies the check state to set. If 0, unchecks; if 1, checks; and if 2, sets indeterminate

    指定菜单项的状态是否被选中,当参数nCheck = 1时,状态为选中,nCheck =0时,状态为未选中,nCheck = 2时,该菜单项的状态不确定。

    void SetRadio( BOOL bOn = TRUE );

    Like the SetCheck member function, but operates on radio groups.

    该函数的设置类似SetCheck ,但是该函数应用于单选组合框中。

    void SetText( LPCTSTR lpszText);

    Sets the text for the user-interface item for this command.

    设置菜单项的正文为参数lpszText的内容

    添加菜单项的快捷键的方法

    单击工作空间的Resource View标签,打开要编辑的加速键资源

    双击空白项出现如下图的对话框

     

    在ID处添加上要创建加速键的菜单项ID

    在key处添加对应的快捷键的虚拟键代码或者点击Next Key Typed 直接输入所选择的快捷键即可

    下面的链接是我实现的快捷键和更新菜单项状态的小程序,供大家参考。

    http://download.csdn.net/my



  • 相关阅读:
    HBase 高性能加入数据
    Please do not register multiple Pages in undefined.js 小程序报错的几种解决方案
    小程序跳转时传多个参数及获取
    vue项目 调用百度地图 BMap is not defined
    vue生命周期小笔记
    解决小程序背景图片在真机上不能查看的问题
    vue项目 菜单侧边栏随着右侧内容盒子的高度实时变化
    vue项目 一行js代码搞定点击图片放大缩小
    微信小程序进行地图导航使用地图功能
    小程序报错Do not have xx handler in current page的解决方法
  • 原文地址:https://www.cnblogs.com/BBOOT/p/3812671.html
Copyright © 2011-2022 走看看