2012-04-20 55 views
1

我想键盘快捷方式添加到Visual Studio 2010中的此MFC SDI应用程序是我做的:与Visual Studio 2010 MFC-SDI应用:新的快捷键不能正常工作

  1. 添加所需的关键作为(与ID ID_NEWGAME例如VK_SPACE)虚拟键将加速器的ressource
  2. 为COMMAND
  3. 测试通过尝试使用调试器
停止事件处理程序内连接的事件处理程序,以ID_NEWGAME类CMyGameView 0

结果:当我点击空格键时,程序没有反应。

在Visual Studio 6.0,然而,相同的过程按预期工作。

我错过了什么?

+0

是否使用了新的MFC类?这可能是同样的问题,作为一个在[我这个没有答案的问题(http://stackoverflow.com/q/6568610/385646) – MikMik 2012-04-20 10:59:14

+0

@MikMik - 看到我的回答如下。我认为这是同样的问题。 – Redeye 2012-04-20 11:04:01

+0

@Redeye:对。这是同样的问题。让我感到困惑的是菜单也可以自定义,但如果你在代码中添加新的菜单,它们不会被注册表中的菜单覆盖。加速器也应该是这样。我知道,新用户和用户定制的用户可能会发生碰撞,但是当没有碰撞时? – MikMik 2012-04-20 11:12:50

回答

3

我有一种预感,你遇到的问题我也碰到过 - 当您创建使用最新版本的MFC,SDI应用程序默认的应用程序从注册表加载的加速器表在运行时因此覆盖任何东西您已在资源表中指定。我在前面的主题here中发布了一个解决方案,我认为它与您所看到的相同。希望有所帮助。

+0

谢谢。我添加了你的解决方案theApp.GetKeyboardManager() - > ResetAll();到CMyGameApp :: InitInstance(),它的工作原理。我必须期待什么样的副作用? – chessweb 2012-04-20 11:15:22

+0

用户无法有效定制加速器。我的意思是,下次他们运行程序时,用户所做的任何定制都将被取消。 – MikMik 2012-04-20 11:30:05

相关问题