2012-04-20 41 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

相關問題