mfc怎么实现两个菜单项一个打勾另一就去勾,还有多个呢?

ON_UPDATE_COMMAND_UI(ID_PARAMETER_COM1,&CdriverDlg::OnUpdateCheck1)ON_COMMAND(ID_PARA... ON_UPDATE_COMMAND_UI(ID_PARAMETER_COM1, &CdriverDlg::OnUpdateCheck1)
ON_COMMAND(ID_PARAMETER_COM1, &CdriverDlg::OnCheck1)
ON_UPDATE_COMMAND_UI(ID_PARAMETER_COM2, &CdriverDlg::OnUpdateCheck2)
ON_COMMAND(ID_PARAMETER_COM2, &CdriverDlg::OnCheck2)
static BOOL state = TRUE;
void CdriverDlg::OnUpdateCheck1(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck(state);
}
void CdriverDlg::OnCheck1(CCm)
{
state=!state;
}
void CdriverDlg::OnUpdateCheck2(CCmdUI *pCmdUI)
{
pCmdUI->SetCheck(state);

}
void CdriverDlg::OnCheck2()
{
state=!state;
}
这个实现了两个菜单项之间上述的互斥,但是点自己也去掉勾了,多个更不行了,怎么控制呢?
展开
 我来答
锁骨的鱼
推荐于2016-05-09 · 超过29用户采纳过TA的回答
知道答主
回答量:73
采纳率:0%
帮助的人:50.3万
展开全部
在单击事件里面设置啊
点击的时候设置其他项的状态
追问
GetMenu()->GetSubMenu(1)->CheckMenuItem(ID_PARAMETER_COM1,MF_BYCOMMAND | MF_CHECKED); 
GetMenu()->GetSubMenu(1)->CheckMenuItem(ID_PARAMETER_COM2,MF_BYCOMMAND |MF_UNCHECKED );
这样是可以,但是很傻,多项就很乱
追答
怎么会乱呢

为每个菜单添加相应的事件
int Mode;
enum {
mode1,
mode2,
mode3
};

void CTestView::OnTestone()
{
Mode=mode1;
}

void CTestView::OnTesttwo()
{
Mode=mode2;
}

void CTestView::OnTestthree()
{
Mode=mode3;
}

void CTestView::OnUpdateTestone(CCmdUI *pCmdUI)
{
pCmdUI->SetRadio(Mode==mode1);
}

void CTestView::OnUpdateTesttwo(CCmdUI *pCmdUI)
{
pCmdUI->SetRadio(Mode==mode2);
}
void CTestView::OnUpdateTestthree(CCmdUI *pCmdUI)
{
pCmdUI->SetRadio(Mode==mode3);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风雨彩虹99l
2013-07-30
知道答主
回答量:6
采纳率:0%
帮助的人:6.1万
展开全部
选择一个之后,其他的checkbox均设置为 SetCheck(BST_UNCHECKED)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式