如图所示,我想实现下面功能:
模式设置选择 模式1时,把更换布局灰化掉。我在OnPaint()函数中添加代码:
if(CMainDlg->imode == 1)//模式1
         {
     m_ConfigMenu.EnableMenuItem(4,MF_BYPOSITION |MF_GRAYED);//更换布局菜单
}
但是问题是:我是在OnPaint()函数中添加的代码,故只有主界面窗口重绘时,这个函数才执行,
如果不重绘,那么这个菜单就不灰化,怎么办呢?我要求一旦选择模式1,这个菜单立即灰化掉,
应该在哪里添加这几句代码呢?

解决方案 »

  1.   

    http://hi.csdn.net/space-2880298-do-album-picid-780023.html
      

  2.   

    解决了,我直接把这句话加到 菜单响应函数里了 
    然后加上Invalidate();
    就可以了。
      

  3.   

    ON_UPDATE_COMMAND_UI
    设置菜单使能的
      

  4.   

    ON_UPDATE_COMMAND_UI 这消息里写代码
      

  5.   

    我怀疑你这样做是否满足效果。
    通常做法on_command只处理菜单响应命令,ON_UPDATE_COMMAND_UI控制状态啦(每次右键菜单弹出时才响应)~