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 应用程序热键或加速器?

检测被主机 mfc 加速器吞噬的 WinForm 中的键盘快捷键

MFC CEdit 控件在添加到加速器后不处理 Key Pressed

MFC:你能在 CDateTimeCtrl 中改变旋转的加速度吗?

加速键