2015-06-18 55 views
0

我們有MFC應用程序,它有大約10個圖像按鈕,我們要爲其提供快捷鍵。快捷方式將可定製。我使用ON_WM_HOTKEY()消息實現了快捷方式(現在沒有定製)。哪個更適合MFC應用程序熱鍵或加速器?

通過Goolge搜索後,我有點混亂。例如,this問題是建議熱鍵是OS的全局,加速器是應用程序的全局。

哪一個我應該用我的應用程序。我的快捷鍵將像Ctrl + Shift + A一樣,並且可以自定義。其次,在哪裏保存它們。是否通常在Windows註冊表中存儲快捷方式?

回答

1

通過RegisterHotKey(或其在MFC中的等價物)添加的熱鍵肯定是系統全局的,除非您特別希望用戶能夠從任何地方觸發它們,否則不應該使用它們來觸發程序中的函數。

(例如,您的應用程序可能是一個截屏的應用程序,因此引發外界它將使意義上的功能)

通常情況下,雖然你應該用加速器來添加鍵盤綁定工具欄按鈕等

在哪裏您存儲它們取決於您 - 我會說您應該將它們存儲在您存儲應用程序的其餘配置數據的任何地方。

+0

它們不是工具欄按鈕,按鈕在子視圖中。加速器是實用可定製的嗎? –

+0

無論他們是工具欄按鈕還是某種其他類型的按鈕都無關緊要 - 除非您希望用戶能夠使用加速器從系統中的任何位置激活它們。您可以使用'CreateAcceleratorTable'動態地創建一個加速表。 –

+0

謝謝,這將是有益的。 +1 –

1

加速鍵和熱鍵的區別在於提供的鏈接狀態;每當應用程序具有焦點(正常行爲)時按下已註冊的組合鍵,就會註冊一個加速鍵按下。但是,如果您希望註冊一個即使用戶在後臺使用其他應用程序時也能正常工作的組合鍵,去熱鍵。通常使用的應用程序是剪貼板管理器,屏幕抓取器和發射器。

將配置存儲在註冊表中是我會推薦的,但是您也可以使用存儲在用戶配置文件目錄中的配置文件。

相關問題