程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 工具欄中的主菜單實現自定義快捷鍵的方法

工具欄中的主菜單實現自定義快捷鍵的方法

編輯:vc教程

如果做過“把主菜單放到工具欄裡”的兄弟們都會發現一個問題:那就是系統會自動給菜單選項加上熱鍵(如果你的菜單選項是英文,那麼會在第一個字母下加橫線,如果你的菜單選項是中文,那麼會在菜單選項的後面加上類似(Y)、(Z)的快捷鍵),而使你自己定義的快捷鍵失效!(注:我後來發現,如果自己加的是類似(H)的快捷鍵時,就不會出現這樣的問題。而只有當我們加的是類似Ctrl+A,F1,Ctrl+Alt+D等的快捷鍵時才會出現問題;另外當為TMainMenu設置了Images屬性後,也就是說給菜單項加了圖片,英文菜單的問題會消失,但中文菜單的問題依然存在。這其中的原因,我也搞不清楚)。即使我們設置mainMenu的AutoHotkeys=maManual也解決不了。

當初我在遇到這個問題後,一籌莫展,只好向高手們請教。後來在BCB_FANS和JSP兩位老大的幫助下,才解決問題。因此,這篇文章實際上是整理的兩位老大的方法。

首先,讓我們去掉系統自動加的熱鍵。

當我們把菜單放到工具欄裡後,我們在程序運行時看到的菜單其實不是我們在設計時加的TMainMenu,而是臨時new的一個TPopupMenu,而這個臨時的菜單的AutoHotkeys屬性默認為maAutomatic,所以就會給菜單自動加上熱鍵。這個問題是BCB_FANS發現的(我不可能有這麼厲害,呵呵),他的原話是這樣的:

“實際上顯示菜單的時候,TToolBar並不是使用原來已經設計好的菜單了,而是重新建立一個臨時的TPopupMenu,並把原來的那個菜單的菜單項添加到這個TPopupMenu當中,最後才顯示這個臨時的TPopupMenu。這個TPopupMenu的AutoHotkeys為maAutomatical,並且沒有任何方式可以控制這個臨時的TPopupMenu的屬性。所以顯示出來的菜單都會自動添加快捷字符。”

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved