メニュー エディター (C++)
メニューを使用すると、論理的かつ見つけやすい方法でコマンドを配置できます。 メニュー エディターでは、完成したアプリケーションとよく似たメニュー バーを直接操作することでメニューの作成と編集ができます。
ヒント
メニュー エディターの使用中は、多くの場合、右クリックして、頻繁に使用されるコマンドのポップアップ メニューを表示できます。 使用できるコマンドは、ポインターの位置によって異なります。
操作方法
メニュー エディターでは、以下の操作が可能です。
標準メニューを作成するには
メニューの [表示]>[リソース ビュー] または [表示]>[その他のウィンドウ]>[リソース ビュー] に進み、[メニュー] 見出しを右クリックします。 [リソースの追加] を選択してから、[メニュー] を選択します。
メニュー バーで、[新しい項目] ボックス ("ここへ入力" と表示されている四角形) を選びます。
[新しい項目] ボックスたとえば "File" など、新しいメニューの名前を入力します。
入力したテキストは、メニュー エディターと、[プロパティ] ウィンドウ の [キャプション] ボックスの両方に表示されます。 新しいメニューのプロパティはこのどちらからでも編集できます。
メニュー バーで新しいメニューの名前を指定すると、(別のメニューを追加できるように) [新しい項目] ボックスが右に移動します。 メニュー コマンドを追加できるように、最初のメニューの下に別の [新しい項目] ボックスが開きます。
メニュー名の入力後にフォーカスが移動した [新しい項目] ボックスNote
メニュー バーで単一項目のメニューを作成するには、[Popup] プロパティを [False] に設定します。
サブメニューを作成するには
サブメニューを作成するメニュー コマンドを選択します。
右側に表示される [新しいアイテム] ボックスに、新しいメニュー コマンドの名前を入力します。 サブメニューのメニューには、この新しいコマンドが最初に表示されます。
サブメニューのメニューにさらにメニュー コマンドを追加します。
既存のメニュー間に新規メニューを挿入するには
既存のメニュー名を選択し、Insert キーを押します。または、メニュー バーを右クリックして [Insert New] (新規の挿入) を選択します。
選択した項目の前に、[新しい項目] ボックスが挿入されます。
メニューにコマンドを追加するには
メニューを作成します。 次に、メニュー名 (File など) を選択します。
各メニューが展開され、コマンド用の新しい項目ボックスが表示されます。 たとえば、[ファイル] メニューに [新規]、[開く]、[閉じる] の各コマンドを追加できます。
[新しい項目] ボックスに新しいメニュー コマンドの名前を入力します。
Note
入力したテキストは、メニュー エディターと、[プロパティ] ウィンドウ の [キャプション] ボックスの両方に表示されます。 新しいメニューのプロパティはこのどちらからでも編集できます。
ヒント
ユーザーがメニュー コマンドを選択できるようにするニーモニック キー (ホット キー) を定義することができます。 ニーモニックとして指定する文字の前にアンパサンド (
&
) を入力します。 この文字を入力することで、ユーザーはメニュー コマンドを選択できます。[プロパティ] ウィンドウで、該当するメニュー コマンドのプロパティを選択します。 詳細については、メニュー コマンドのプロパティに関するページを参照してください。
[プロパティ] ウィンドウの [プロンプト] ボックスに、アプリケーションのステータス バーに表示するプロンプト文字列を入力します。
この手順により、作成したメニュー コマンドと同じリソース識別子を持つエントリが文字列テーブル内に作成されます。
Note
プロンプトは、[Popup] プロパティが [True] のメニュー項目にのみ適用できます。 たとえば、トップレベルのメニュー項目にサブメニュー項目がある場合、プロンプトを適用できます。 プロンプトの目的は、ユーザーがメニュー項目を選択したときに発生する動作を示すことです。
Enter キーを押してメニュー コマンドを完了します。
[新しい項目] ボックスが選択され、さらにメニュー コマンドを作成できるようになります。
複数のメニュー コマンドを選択して、プロパティの削除や変更などの一括操作を実行するには
Ctrl キーを押しながら、目的のメニューまたはサブメニューのコマンドを選択します。
メニューとメニュー コマンドを移動およびコピーするには
ドラッグ アンド ドロップのメソッドを使用する場合。
移動する項目を次の場所にドラッグまたはコピーします。
現在のメニュー上の新しい場所。
別のメニュー 他のメニューに移動するには、そのメニューにマウス ポインターをドラッグします。
挿入ガイドで目的の位置が示されたら、メニュー コマンドをドロップします。
ショートカット メニューのコマンドを使用する場合。
1 つ以上のメニューまたはメニュー コマンドを右クリックし、[切り取り] (移動するため) または [コピー] を選択します。
項目を別のメニュー リソース ファイルまたはリソース スクリプト ファイルに移動する場合は、そのファイルを別のウィンドウで開きます。
メニューやメニュー コマンドを移動またはコピーする位置を選択します。
ショートカット メニューの [貼り付け]を選択します。 移動またはコピーする項目は、選択した項目の前に配置されます。
Note
ドラッグでコピーした項目を別のメニュー ウィンドウの別のメニューに貼り付けることもできます。
メニューまたはメニュー コマンドを削除するには
メニュー名またはコマンドを右クリックし、[削除] を選択します。
Note
同様に、ショートカット メニューを使用して、コピー、切り取り、貼り付け、新しい項目の挿入、区切り記号の挿入、ID の編集、ポップアップとして表示、ニーモニックの確認などの操作を実行することができます。
ポップアップ メニュー
ポップアップ メニュー には、頻繁に使用するコマンドが表示されます。 これらは状況依存となっていて、マウス ポインターの場所に応じて表示できます。 アプリケーションでポップアップ メニューを使用には、メニュー自体をビルドし、アプリケーション コードに接続する必要があります。
メニュー リソースを作成したら、アプリケーション コードでメニュー リソースを読み込み、TrackPopupMenu を使用してメニューを表示する必要があります。 ユーザーがメニューの外部を選択してポップアップ メニューを閉じるか、コマンドを選択すると、この関数に戻ります。 ユーザーがコマンドを選択した場合は、そのコマンドのメッセージが、ハンドルが渡されたウィンドウに送信されます。
Note
Microsoft Foundation Class (MFC) ライブラリ プログラムおよび ATL プログラムの場合は、コード ウィザードを使用して、メニュー コマンドをコードにフックします。 詳細については、「イベントの追加」および「関数へのメッセージの割り当て」を参照してください。
ポップアップ メニューを作成するには、空のタイトルでメニューを作成し、キャプションを指定しません。 その後、新しいメニューにメニュー コマンドを追加します。 空のメニュー タイトルの下にある最初のメニュー コマンドに移動し (一時的なキャプション [ここに入力] が表示されます)、"キャプション" とその他の情報を入力します。
ポップアップ メニューのその他のメニュー コマンドに対してこのプロセスを繰り返し、必ずメニュー リソースを保存します。
ポップアップ メニューをアプリケーションに関連付けるには、たとえば、WM_CONTEXTMENU のメッセージ ハンドラーを追加し、次のコードをそのメッセージ ハンドラーに追加します。
CMenu menu; VERIFY(menu.LoadMenu(IDR_MENU1)); CMenu* pPopup = menu.GetSubMenu(0); ASSERT(pPopup != NULL); pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());
Note
メッセージ ハンドラーによって渡される CPoint は、画面座標単位です。
通常、メニュー エディターを使用しているときは、メニュー リソースがメニュー バーとして表示されます。 ただし、プログラムの実行中にアプリケーションのメニュー バーにメニュー リソースが追加されている場合もあります。
メニュー リソースをポップアップ メニューとして表示するには、メニューを右クリックし、[ポップアップ表示] を選択します。
このオプションは単なる表示設定であり、メニューは変更されません。
ヒント
メニュー バーの表示に戻るには、[ポップアップ表示] をもう一度選択します。 この操作により、チェック マークが解除され、メニュー バーの表示に戻ります。
要件
Win32
関連項目
Resource Editors
メニュー コマンド
ユーザー インターフェイス オブジェクトとコマンド ID
メニュー
メニュー