在菜单栏中对一个选项勾选了check,可运行是那个选项的小勾始终存在,是什么原因?

解决方案 »

  1.   

    有没有处理该菜单项的ON_UPDATE_COMMAND_UI消息。
    在该处理函数中通过
    pCmdUI->SetCheck(TRUE) or pCmdUI->SetCheck(FALSE)来 勾选 or 取消。
      

  2.   

    //如果是文档/视图结构的程序,可以在按钮的ON_UPDATE_COMMAND_UI中设置:void CMainFrame::OnUpdateMenuitem(CCmdUI* pCmdUI) 
    {
        pCmdUI->SetCheck(0);
    }//如果是对话框结构的程序,则可以处理WM_INITMENUPOPUP消息,然后在其中使用CheckMenuItem来设置。
      

  3.   

    同意一楼意见。
    你要自己在菜单命令中加入取消check就行了。
      

  4.   


    在类中定义一个BOOL 变量 m_bCheck 跟这个菜单项关联void CMainFrame::OnUpdateMenuitem(CCmdUI* pCmdUI) 

        pCmdUI->SetCheck(m_bCheck);
    } 在 点击菜单项 处理函数中设置m_bCheck=!m_bCheck;