|
|
||||
Tips > |
|||||
MainMenu でショートカットのある項目を探す |
更新 : 2009/04/08 |
||||
|
|
||
解説: GUI を使ったアプリケーションでは MainMenu は当たり前のように出てきます。サブメニューも簡単に作れますので、通常は問題なく利用できると思います。ところがファイルの履歴を動的に表示するなどを考えていくと、とたんに難しくなります。そうした場面に対応するためにも TMenuItem, Items などの概念をしっかり掴んでおいてください。 使用例: 以下の例では、作成したメニューの中からショートカット F3 が割り当てられた項目を調べ、その名前を返します。 準備として MainMenu, Label, Button を適当に配置してください。 MainMenu1 には、ファイルメニューを作成して、[開く(O)][上書き保存(S)][閉じる(C)] のコマンドを作ってください。名前は、各々 Open1, Save1, Close1 とします。 Open1 の ShortCut 値を F3 とします。 Button1 をクリックすると、ショートカット F3 を持つメニュー項目を探し、Label1 に見つけたメニュー項目の名前を表示します。ショートカットキーは仮想キーコードを指定しています。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // FindItem メソッドはメニュー(サブメニュー)項目を検索して返します。 // ショートカットキーは仮想キーコードを指定。 TMenuItem *itemName = MainMenu1->FindItem(VK_F3, fkShortCut); if (itemName != NULL) Label1->Caption = itemName->Name; else ShowMessage("Nothing"); } //------------------------------------------------------------------- |