MFC中菜单项状态的切换

本文介绍了在MFC中如何实现菜单项状态的切换。首先在资源文件中设置菜单项为 Checked,然后添加COMMAND和UPDATE_COMMAND_UI消息处理程序。在CMainFrame类中使用一个bool变量控制菜单选中状态,并在响应函数OnMouseroll和OnUpdateMouseroll中实现状态切换及业务逻辑。
MFC中的菜单项中左边可以有一个是否选中的状态,注意不是让菜单项变灰,而是在菜单项左边出现一个钩,要实现这个效果,需要进行下面这几步操作。

1.首先在菜单项的资源文件中将属性Checked置为true,这样在资源编辑器中就可以看到菜单项左边多出了一个方格,方格里面有个钩。


2.第二步的操作时添加事件处理程序。需要添加两个事件,一个是COMMAND消息的响应事件,还有一个是UPDATE_COMMAND_UI消息的响应事件,UPDATE_COMMAND_UI这个消息平时一般很少用到,在这个地方就用到了,如果不添加这个事件,那么你点击菜单项后菜单左边的钩不会在显示和隐藏之间切换的。这两个消息响应函数一般都添加在CMainFrame这个类中。消息映射如下,在这里我定义的两个消息映射函数是OnMouseroll和OnUpdateMouseroll。

ON_COMMAND(ID_MOUSEROLL, &CMainFrame::OnMouseroll)
ON_UPDATE_COMMAND_UI(ID_MOUSEROLL, &CMainFrame::OnUpdateMouseroll)

3.在CMainFrame这个类中定义一个bool型的成员变量(这里我定义的变量名为flag)来控制菜单是否选中。在OnUpdateMouseroll中控制菜单是否选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值