关于MFC 主菜单Alt无响应 补充

本文深入探讨了在MFC中创建菜单时遇到的快捷键失效问题,揭示了焦点丢失是导致此现象的根本原因,并提供了一种通过SetFocus()函数为控件设置焦点来解决问题的有效方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       今天用MFC编写一个程序,因为要创建菜单,删除了窗体上的默认按钮和标签控件之后,就

直接去创建菜单了,创建了几个主菜单,每个主菜单下面又创建了子菜单。主菜单和子菜单都添加了

访问键(即在菜单名称后加了(&访问键字母))。然后绑定到了窗体,就去调试查看效果,结果

Alt+访问键一点响应也没有,从网上找了好久,也有很多人遇到这个问题,但是都没有解决。

后来看网上有个人说把项目删了,又新建了一个项目,就可以了。我也试着又新建了一个项目,因为着急,

没有删除新建项目窗体上的按钮,就直接创建菜单,添加快捷键,然后绑定窗体,运行,也可以用Alt+字母快捷键了。

心想也没什么区别呀。  又试着新建了一个项目,这次把窗体上的控件都删除了,然后创建菜单,添加快捷键,绑定窗体,

运行程序,结果用Alt+字母快捷键,就没响应了。

 至此,总算找到问题所在了。看来下次遇到问题,还是不要急着去解决,等窗体上添加了控件之后,问题也就不是问题了。

上文找出了问题 具体解决办法以及原理。

删除所有控件 菜单无效 ,添加控件 菜单快捷有效。   

删除所有控件以后 窗口失去焦点,所以需要把焦点找回来。(一般这种失焦点的情况 都是多种子窗口 存在产生的)

合理 利用  SetFocus();  找到主菜单所在的窗口的任意一个控件,给上焦点,完美解决这个问题。

xxxx. SetFocus(); 
                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值