MFC 加速器资源 ID 冲突?
Posted
技术标签:
【中文标题】MFC 加速器资源 ID 冲突?【英文标题】:MFC Accelerator resource ID conflicts? 【发布时间】:2015-06-30 18:53:25 【问题描述】:有人在 resource.h 文件中更改了其中一个加速器的数值,因此加速器停止工作。
(有效的旧值)
#define IDR_DELETE_FROM_ACCELERATOR 32873
(无效的新值)
#define IDR_DELETE_FROM_ACCELERATOR 22873
相关代码:
ON_COMMAND( IDR_DELETE_FROM_ACCELERATOR, OnDeleteFromAccelerator )
void CMyViewClass::OnDeleteFromAccelerator()
///....
在这两种情况下,数值都是唯一的(没有冲突)。
来自MSDN,看来这两个数值应该都是有效的。
我是否正确阅读/理解了这一点?
我可以简单地将值重新编号为有效的值,但我想了解它为什么停止工作。
谢谢,
最大。
【问题讨论】:
您是否尝试清理并重建您的项目?有时资源和代码会变得不同步。 是的,我确实重建了(并删除了所有临时文件)。 【参考方案1】:阅读TN020多加关注。
桌子上写着:
ID_ commands 0x8000 through 0xDFFF
0x8000 十进制为 32768。
22873 低于此值。
【讨论】:
以上是关于MFC 加速器资源 ID 冲突?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Visual Studio 2010 的 MFC-SDI 应用程序:新的键盘快捷键不起作用
检测被主机 mfc 加速器吞噬的 WinForm 中的键盘快捷键
MFC CEdit 控件在添加到加速器后不处理 Key Pressed