MENUS_BEGIN-MENUS_END
[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]
The MENUS_BEGIN – MENUS_END section contains an entry for each menu that a VSPackage implements.
メニュー項目
.ctc ファイルで、メニューはグループのコンテナです。 グループには、コマンド、およびも他のメニュー コンテナです。
メニューは、[.ctc ファイルの MENUS_BEGIN - MENUS_END セクションのエントリをで定義されます。 メニュー エントリは 6 つのフィールドはコンマで区切られますを持ちます。 メニュー エントリはセミコロンで終了します。 メニューの [エントリの例を次に示します。
Menu ID, Group ID, Priority, Type, Menu Name, Menu Text;
次の表に説明はメニューの [エントリ フィールド。 指定された順序でフィールドを表示する必要があります。 最後のフィールドをセミコロンで終了する必要があります。
フィールド |
説明 |
---|---|
Menu ID |
このメニューを識別する GUID:ID ペア。 |
Group ID |
親のグループを識別する GUID:ID ペア。 |
Priority |
同じグループ内の他のメニューを基準にこのメニューの位置ために使用する値。 |
Type |
メニューとその動作の種類を説明するフラグの組み合わせです。 |
Menu Name |
メニューの名前。 |
Menu Text |
これは、テキスト、ユーザーが、メニューを開きますクリックしてです。 このフィールドは、、 ビュー メニューの のサブメニューをツールバーに表示されるツールバーの名前もです。 このフィールドはカスタマイズ時に、のショートカット メニュー ツールバーに表示されるショートカット メニューの名前もです。 このフィールドは省略可能です。 指定しない場合、Menu Name フィールドが使用されます。 |
詳細については、"The メニュー エントリ フィールド] を参照してください。 このトピックの後の「。
メニューの [使用例 (VB)
The following code example from the File Explorer sample shows a MENUS_BEGIN – MENUS_END section. 次の使用例は、ツールバー、ショートカット メニューのおよびカスケード メニューを定義します。 These menus are containers for groups that are defined in the NEWGROUPS_BEGIN-NEWGROUPS_END section.
注意
次の使用例のエントリは読みやすくするためにインデントします。実際、エントリにすべてのフィールドは、1 行にあります。詳細については、「VSPackage の IDE にユーザー インターフェイス要素を追加する方法」および「CMDS_SECTION-CMDS_END」を参照してください。
MENUS_BEGIN
// Toolbars
guidEUGrp:IDM_TLB_FILESYSFOLDER,
guidEUGrp:IDM_TLB_FILESYSFOLDER,
0x0000, TOOLWINDOWTOOLBAR,
"File System Browser Folders", "Folders";
guidEUGrp:IDM_TLB_FILESYSFILE,
guidEUGrp:IDM_TLB_FILESYSFILE,
0x0000, TOOLWINDOWTOOLBAR,
"File System Browser Files", "Files";
// Shortcut menus
guidEUGrp:IDM_CTX_FILESYSFOLDER,
guidEUGrp:0,
0x0000, CONTEXT,
"FileSysFolder Context", "FoldersContext";
guidEUGrp:IDM_CTX_FILESYSFILE,
guidEUGrp:0,
0x0000, CONTEXT,
"FileSysFile Context", "FilesContext";
guidEUGrp:IDM_CTX_CMDMACRO,
guidEUGrp:0,
0x0000, CONTEXT,
"Command Macro Context", "CommandMacro";
// Sort Cascading menu
guidEUGrp:IDM_MNU_FILESYSFILE_SORT,
guidEUGrp:IDG_FILEPANECTX_ARRANGE,
0x0000, ,
"Arrange Files", "&Arrange Files";
// Commands Cascading menu
guidEUGrp:IDM_MNU_FILESYS_COMMANDS,
guidEUGrp:IDG_FILESYSCTX_COMMANDS,
0x0000, ,
"Commands", "&Commands";
MENUS_END
メニュー項目のフィールド]
Each entry in the MENUS_BEGIN – MENUS_END section has six fields. コンマでは、フィールドを区切ってする必要があり、エントリする必要があります、セミコロン (;) の終了します。 フィールドがとおりです。
Menu ID
Menu ID フィールドは、メニューを識別します。 Menu ID フィールドは、常に、GUID:ID ペアです。 最初の Menu ID 定義の例では
guidEUGrp:IDM_TLB_FILESYSFOLDER
Group ID
Group ID フィールドには、メニューの親グループを指定します。 以外のツールバーおよびショートカット メニューのすべてのメニューが必要] メニューの [エントリでまたはコマンドの配置」に指定されている親グループです。 例では、最初の Group ID ツールバー定義は
guidEUGrp:IDM_TLB_FILESYSFOLDER
ツールバーとショートカット メニューに親のグループがありません。 そのため、これらのメニューの.ctc ファイルで、親グループが無視されます。 規則をツールバーの親のグループに設定されて、同じ GUID:ID ペア、Menu ID フィールドで指定されているたとえば、
guidEUGrp:IDM_TLB_FILESYSFOLDER, guidEUGrp:IDM_TLB_FILESYSFOLDER , ...
コンテキスト メニュー規則により] メニューの GUID を使用、上位グループとして、たとえば、0 の ID
guidEUGrp:IDM_CTX_FILESYSFOLDER, guidEUGrp:0, ...
For menus of type MENU, MenuController, and MenuControllerLatched, if a primary group is not specified, then the menu entry must have an entry in the CMDPLACEMENT_SECTION-CMDPLACEMENT_END section or it will not appear in the Visual Studio integrated development environment (IDE).
Priority
Priority フィールドは、親コンテナのメニューの相対位置を指定します。 小さい番号があるアイテムが大きい値があるものの前に表示されます。 既存のグループにメニューを追加する場合、は、一貫性のあるユーザー エクスペリエンスを維持する位置に、コマンドまたはメニューに配置は優先順位を指定します。 たとえば場合、メイン ツールバーにボタンを追加する設定の優先順位] は ヘルプ の左側に表示されるようです。
ツール ウィンドウで、File Explorer サンプルが実装されて、ため、ツールバーは別のメニューに含まれますされません。 このため、その Priority フィールドが 0x0000 になります。
When a parent group of a menu is defined by command placement, the Priority field in the menu entry is ignored in favor of the Priority field that is specified in the CMDPLACEMENT_SECTION-CMDPLACEMENT_END section.
Type
Type フィールドに作成されるメニューの種類を指定します。 値の大文字と小文字は区別されません。 種類は、その他のフラグと組み合わせることができます。 詳細については、Type Flags を参照してください。 このトピックで「」セクション。
表には、Type フィールドには、設定可能な値を記載します。 Type フィールド空 (既定値) をままにした場合、結果は、標準のメニューになります。
メニューの [種類
説明
(Default)
次の特徴を持つドロップダウン メニューが用意されています。
型引数を] メニューの [宣言で空白のままによって指定が。
その定義の Group ID フィールドを尊重します。
Group ID フィールドには、または、コマンドの配置」で定義されている親グループ必要です。
その他のメニューにサブメニューができます。
自動的に表示して作成、IDE、メニューの親メニューが表示されているときに。
表示されているように VSPackage コードの実装を必要としません。
Toolbar
次の特徴を持つ IDE 内で標準ツールバーでは説明します。
その定義の Group ID フィールドは無視されます。
作成できません] のサブメニュー コマンドの配置を使ってもありません。
常に、IDE で のメニューをツールバーで使用できます。
作成できる表示されているフラグを設定して、ユーザーの IDE 環境の既定の一部で。 詳細については、Type Flags を参照してください。 このトピックで「」セクション。
自動的に利用、IDE で。
表示されているように VSPackage コードの実装を必要としません。
ToolWindowToolbar
次の特性を持っています、特定のツール ウィンドウに添付されているツールバーが用意されています。
その定義の Group ID フィールドは無視されます。
作成できません] のサブメニュー コマンドの配置を使ってもありません。
いない自動的に利用、IDE で。
だけ表示されている、ホストのツール ウィンドウが表示され、VSPackage、ツールのウィンドウのツールバーを明示的に追加するときです。
通常これは、ツール ウィンドウが、ツール ウィンドウのフレームから、IVsToolWindowToolbarHost インターフェイスによって表される) と、ツールバーのホスト プロパティを取得し、 AddToolbar メソッドを呼び出すして作成されたときです。
Context
右クリックとをしたウィンドウで表示できる、メニューを提供します。 ショートカット メニューの [は、次の特性を持っています。
いない Group ID と Priority フィールドを使用、ショートカット メニューのメニューが表示されるとします。
サブメニューやショートカット メニューを使用できます。 この場合、Group ID と Priority フィールドの両方をサポートします。
いない自動的に利用、IDE で、ショートカット メニューとしています。
のみ、ショートカット メニューとして表示される、以下の条件に該当する場合。
ウィンドウがホストしているが表示されています。
VSPackage のマウス ハンドラは、ウィンドウを右クリックを検出しを実装するメソッドを呼び出しています。
ShowContextMenu インターフェイスか、 IOleComponentUIManager (推奨アプローチ)、 ShowContextMenu インターフェイスで、メソッドまたは IVsUIShell メソッドの呼び出しを使用してには、このショートカット メニューが表示されます。
MenuController
分割ボタンのメニューのツールバーで通常使用されるを提供します。 MenuController メニューは、次の特性を持っています。
必要がありますで指定に含まれている別のメニューをグループまたはコマンドの配置を使用しています。
その定義の Group ID フィールドを尊重します。
親として任意の種類] メニューの [ができます。
自動的に利用、IDE で、親のメニューが表示されているときにできます。
表示メニューを広げるにプログラムのサポートを必要としません。
コマンド名がメニューの [ボタンに表示常にします。 表示のコマンドは、次のいずれか。
コマンドが引き続き表示され、有効になっている場合、選択された最終コマンド。
最初の表示コマンド。
MenuControllerLatched
latched として、コマンドをマークして指定できます、既定の選択の分割ボタンのメニューを提供します。 MenuControllerLatched メニューは、次の特性を持っています。
必要がありますで指定に含まれている別のメニューをグループまたはコマンドの配置を使用しています。
その定義の Group ID フィールドを尊重します。
親として任意の種類] メニューの [ができます。
自動的に利用、IDE で、親のメニューが表示されているときにできます。
表示メニューを広げるにプログラムのサポートを必要としません。
コマンド名がメニューの [ボタンに表示します。 表示のコマンドは、次のいずれか。
最初表示コマンドを latched です。
最初の表示コマンド。
ラッチ済みコマンドはコマンドが選択されて、通常、チェック マークを表示してメニューでマークされているです。 OLECMDF_LATCHED が latched とコマンドをマークできるフラグ、 QueryStatus インターフェイスの IOleCommandTarget メソッドの実装でに設定します。
メモ管理パッケージ フレームワーク (MPF) を使用するマネージ コードでは、MenuCommand クラスよって、 Checked プロパティを設定またはラッチ済みコマンドの状態をクリアします。
最初の Type 定義の例では次の。
ToolWindowToolbar
Type Flags
種類 Flags には、Type フィールドの一部実際にです。 次の表のことができますが、Type の値を持つ演算子で結合の | (OR)、たとえば、 Toolbar | DefaultDocked するフラグです。
フラグ
説明
AlwaysCreate
いないグループまたはボタンがある場合でも、メニューが作成されます。
DefaultDocked
既定では、IDE に固定します。 これはツールバー] メニューの [種類でのみ有効です。
DefaultInvisible
メニューの [は、メニューを実装する VSPackage が読み込まれるまで非表示になります。 サブメニューには、このフラグが通常割り当てられます。
このフラグは、DynamicVisibility フラグと組み合わせる必要があります。
DontCache
そのメニュー項目のテキストをキャッシュにしない] メニューの [コントローラを説明します。 このフラグは、メニューの [が動的な品目または品目動的テキストが含まれている場合に使用します。
DynamicVisibility
The visibility of a menu is dynamic and can be changed by by using an entry in the VISIBILITY_SECTION-VISIBILITY_END section of the .ctc file. メニューを実装する VSPackage が読み込まれるようにありません。
このフラグすべてのメンバが非表示の場合、メニューが非表示に自動的にもを示します。 最上位のメニューこの動作を既にがあるするためにはこのフラグがサブメニューに通常割り当てられます。
このフラグは、DefaultInvisible フラグと組み合わせる必要があります。
NoCustomize
ユーザーことはできません、メニューのすべての項目を名前変更または表示される順序を変更します。 これは Context メニューの [種類でのみ有効です。
ユーザー設定 ダイアログ ボックスでツールバーの一覧で のショートカット メニューを選択してショートカット メニューをカスタマイズできます。 すべての使用可能なショートカット メニューを含むツールバーを表示これを行うとします。 ショートカット メニューが、NoCustomize フラグによってマークされている場合、 ショートカット メニュー ツールバーで、表示できますを変更することはできません。
メモツール ウィンドウのツールバーはカスタマイズできます。NotInTBList
使用できるツールバーの一覧に表示されません。 これはツールバー] メニューの [種類でのみ有効です。
NoToolBarClose
ユーザーは、ツールバーを終了できません。 これは Toolbar メニューの [種類でのみ有効です。
TextChanges
メニューには、動的テキストがあります。 クリックすると表示されるテキストに反映されます。
TextIsAnchorCommand
メニューの [コントローラ] のメニューのテキストは、アンカー コマンドから取得されます。 アンカー コマンドは latched または選択された最後コマンドです。 このフラグが設定されていない場合、メニューの [コントローラでは Menu Text フィールドは自身が使用されます。 ただし、] メニューの [コントローラ] をクリックしてが最終選択コマンド実行をコントローラからします。
このフラグは、TextChanges フラグと組み合わせる必要があります。
このフラグは型のメニューにのみ適用されます MenuController または MenuControllerLatched です。
Type Flags を使用] メニューの [エントリの例のことを確認します。
Menu Name
Menu Name フィールドには、メニューの名前を指定します。 この名前は、ユーザー設定 ダイアログ ボックス内のアイテム表示されます。 IDE では、メニューに表示されるコマンドの Menu Name と Button Text も使用します。 これではコマンド ウィンドウ **、たとえば、**の File.FileNew からメニュー コマンドは使用できます。 IDE は、標準フォームに、Menu Name フィールドを変換され、文字、数字、アンダースコア (_)、および埋め込みのピリオド以外のすべての文字を除外するに実行します。 例で最初 Menu Name フィールド ツールバー定義は、以下です。
File System Browser Folders
これは、次のコマンド名に変換されます。
FileSystemBrowserFolders
Menu Text
Menu Text フィールドはテキスト アイテムは、メイン メニュー バー上のメニューまたはサブメニューとが表示されますを格納します。 Menu Text フィールドはメニュー項目のローカライズ文字列としても機能します。
ショートカット メニュー] の Menu Text フィールドは IDE 内でのショートカット メニューのカスタマイズを有効にされる のショートカット メニュー ツールバーに表示されている名前です。 このためはどの名前、ショートカット メニューの [たとえばに固有は、"Widget パッケージのショートカット メニューを使用してください "ショートカット"ではなく。
Menu Text フィールドが指定されていない場合、 Menu Name フィールドが使用されます。
最初のツールバー定義の Menu Text フィールドは次の。
Folders
参照
概念
VSPackage の IDE にユーザー インターフェイス要素を追加する方法