我想给一个采单项设置子采单项,其中父采单的名是:选择更新速度,而有几个子采单项的标题分别是,1秒,3秒,5秒.也就说,我选父采单的时候会弹出4个子采单项来选择更新速度,如果我选了速度为3秒,就在3秒的采单项前画一个钩,如果原来选择的是5秒那个采单,那么5秒的那个钩要让它自动消失. 总结起来两点:
1,在这几个子采单中如果某个选中,则在其前面画一个钩;
2,在这几个子采单中每次只能选择一项,也就是说,他们是互斥的.谢谢!任何建议都受欢迎!

解决方案 »

  1.   

    将菜单属性设置为checked   
          使用GetMenuState和CheckMenuItem函数另外,在对话框中应该使用WM_KICKIDLE来改变各控件的状体   
        
      BEGIN_MESSAGE_MAP(CTabDialog,   CDialog)   
            ON_MESSAGE(WM_KICKIDLE, OnKickIdle)   
      END_MESSAGE_MAP()   
        
      LRESULT   CTabDialog::OnKickIdle(WPARAM   wp,   LPARAM   lCount)   
      {   
            UpdateDialogControls(this,   TRUE);   
            return   0;   
      }   
      

  2.   

    以上是选中打勾,至于菜单子项的互斥可以这样处理:
       int   nState   =   1;       
      然后如果选一项时先判断现在的nState是几,然后用   
      CheckMenuItem(ID_XXXX,MF_BYCOMMAND|MF_UNCHECKED);     
      来取消钩子,然后用   
      CheckMenuItem(ID_XXXX,MF_BYCOMMAND|MF_CHECKED);     
      来设置钩子的新位置,然后将nState设为当前项的值