一些人喜欢在菜单前面挂个勾,以便查看有没有选中,我只是换了种方式:挂上radio圆点。
但挂勾能通过GetMenuState判断是否等于MF_CHECKED来判断选中与否,但此法对于radio无效,搜索网上,一个都没见。只好来这里问问了。

解决方案 »

  1.   

    控件关联变量,当选中时,UpdateData(true)后变量值会由0变为1,是bool型还是int型记不住了。
      

  2.   

    我说的是菜单上的radio,不是我自己说的,里面用的时候也有CheckMenuRadioItem,显示的时候跟单选钮差不多,但还是有差别的,最大的差别就是他不是控件,是菜单。
      

  3.   

    用一个变量记录如uCheckID,
     CheckMenuRadioItem的时候uCheckID=XXXXX
    然后在ON_COMMAND_RANGE中处理
    void CChildFrame::OnRangeCmds(UINT nID)
    {
       CMenu* mmenu = AfxGetMainWnd()->GetMenu();
       CMenu* submenu = mmenu->GetSubMenu(5);
       submenu->CheckMenuRadioItem(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3, 
          nID, MF_BYCOMMAND);
       uCheckID=nID;
    }判断的时候判断uCheckID
      

  4.   

    MFT_RADIOCHECK
    Displays checked menu items using a radio-button  instead of a check  if the hbmpChecked member is NULL.