MFC学习日记七:Mfc动态(静态)设置菜单项

本文介绍了MFC中如何动态和静态设置菜单项的状态,包括启用和禁用菜单项,以及如何响应WM_INITMENUPOPUP消息。同时,讨论了菜单栏与工具栏ID相同的情况,以及如何创建和响应右键弹出菜单。详细步骤包括菜单项的添加、更新以及消息映射机制的运用。
摘要由CSDN通过智能技术生成

Mfc命令更新机制:




        在应用程序中,菜单栏是一直要显示的,所以就要实时去更新它,显示它的即时状态(可用/不可用)。当我们要设置一个菜单不可用时,系统会发出一条消息WM_INITMENUPOPUP(可以理解为初始化菜单项弹出窗口消息) ,在此说明Mfc的命令更新仅适用于即弹出式菜单项(子菜单栏上的子菜单项),不能用于永久显示的菜单栏的菜单项(如上图所示);然后MFC的基类CFrameWnd接管这个消息,并且它创建一个CCmdUI对象与第一个菜单项相关联,调用一个成员函数DoUpdate()。这个函数发出CN_UPDATE_COMMAND_UI消息,这个消息带有一个CCmdUI类型的指针,它会去检测是否有接管这个消息的宏ON_UPDATE_COMMAND_UI,有就去调用对应的响应函数(即消息映射原理)进行处理,执行完成之后这个一开始创建的CCmdUI对象会与第二个菜单项相关联,执行同样的操作...依次下去。


       菜单栏菜单项的ID与工具栏的ID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值