vc,我做了一个单文档界面的程序,在菜单中加了一栏叫function,在下拉子菜单中有三个选项分别是:encode,encode&decode,decode,这三个不是command型的命令,是三个选项,也就是在选 中了某一个之后,会在前面出现打勾的状态,现在我在下面的窗口中设置了一个按钮,在function下拉菜单中选中encode,然后我要在点击按钮之后让function选项中的其它两个变灰(不可用),怎么实现这个选项的可用与不可用?

解决方案 »

  1.   

    就直接ENABLEWINDOW()就可以了啊
      

  2.   

    在OnUpdate...()函数中处理:(比如OnUpdateEditCut)
    pCmdUI->Enable(FALSE);
      

  3.   

    应该是EnableMenuItem( HMENU hMenu,         // 菜单句柄
      UINT uIDEnableItem,  // 要操作的菜单项ID
      UINT uEnable         // 菜单状态标志
    );
    第一个参数可用GetMenu(HWND hwnd)得到
    hwnd为菜单所在窗口句柄
    uIDEnableItem 为要操作的菜单ID
    uEnable 可取MF_BYCOMMAND和下列一种状态的组合
    MF_DISABLED     禁止此菜单项
    MF_ENABLED      恢复此菜单项
    MF_GRAYED       使此菜单变灰
      

  4.   

    这三个不是command型的命令,那怎样才能选中一个呢?如果能选中一个,当然能使其它两个变灰。
    先告诉我,怎样才能选中一个?
      

  5.   

    在菜单或命令的UPDATE_COMMAND_UI消息的处理代码中,判断条件,根据结果调用pCmd->Enable(true/false); 这是标准方法