我希望控制菜单前面是否Check,但是我又不希望没一个菜单项的ON_UPDATE_COMMAND_UI消息都生成一个调用函数。我认为在CCmdUI* pCmdUI中包含了菜单信息,那么菜单的名称和菜单ID怎么得到?

解决方案 »

  1.   

    可以多个ID的ON_UPDATE_COMMAND_UI对应同一个函数。
      

  2.   

    To ld_sfzc
    是可以多个ID对应同一个函数,而且工具栏的ID和菜单上的ID可以是一样的。
    但是我想在这个函数里同时控制工具栏中按钮是否按下和菜单前面是否加Check,
      

  3.   

    通过定义 ON_COMMAND_RANGE 和 ON_UPDATE_COMMAND_UI_RANGE 消息映射可使多个连续的ID得到相似的处理。例如
    ON_UPDATE_COMMAND_UI_RANGE(ID_FIRST, ID_LAST, OnUpdate***)
    这样ID_FIRST到ID_LAST之间连续的ID都可以用OnUpdate***处理,不知是否可以解决搂主的问题。
      

  4.   

    不好意思,用pCmdUI->m_nID就可以得到菜单ID。
    不过hwonzord 的办法对于窗口菜单的处理还是有好处的。