MenuBar コントロールの種類

このトピックでは、MenuBar コントロールの種類に対する Microsoft UI オートメーション のサポートについて説明します。

メニュー バー コントロールは、 MenuBar コントロールの種類を実装するコントロールの例です。 メニュー バーは、ユーザーがアプリケーションに含まれるコマンドおよびオプションをアクティブにするための手段を提供します。

次のセクションでは、MenuBar コントロール型に必要なUI オートメーションツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI オートメーションの要件は、UI フレームワーク/プラットフォームがコントロールの種類とコントロール パターンUI オートメーションサポートを統合するすべてのメニュー バー コントロールに適用されます。

このトピックは、次のセクションで構成されています。

一般的なツリー構造

次の表は、メニュー バー コントロールに関連するUI オートメーション ツリーの一般的なコントロールとコンテンツ ビューを示し、各ビューに含めることができる内容を示しています。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

コントロール ビュー コンテンツ ビュー
  • MenuBar
    • MenuItem (1 個以上)
    • その他のコントロール (0 個以上)
  • 該当なし
    • MenuItem (1 個以上)
    • その他のコントロール (0 個以上)

 

メニュー バー コントロールは常にコントロール ビューに表示されますが、コンテンツ ビューには表示されません。これは、通常、エンド ユーザーに意味のある情報を伝えないためです (アプリケーションに複数のメニュー バーが含まれている場合を除く)。

UI オートメーションクライアントは、UIA_MenuModeStartEventId イベントをリッスンして、UI がメニュー モードになったときに常に通知されるようにすることができます。 アプリケーションがメニュー モードの場合、メニュー ナビゲーション用にすべてのキーボード入力をキャプチャできます (たとえば、「」と入力すると、アプリケーション クライアント領域に文字を入力する代わりに [保存] メニューが呼び出される場合があります)。 UIA_MenuModeStartEventId イベントは、論理整合性を確保するために、最初のUIA_MenuOpenedEventId イベントの前に置く必要があります。 UIA_MenuModeEndEventId イベントは、最後のUIA_MenuClosedEventId イベントに従います。 メニュー項目をクリックすると、 UIA_MenuModeStartEventId イベントが直ちにトリガーされ、その後に UIA_MenuOpenedEventId イベントがトリガーされる場合もあります。

メニュー バー コントロールには、その構造内に編集コントロールやコンボ ボックスなどの他のコントロールを含めることができます。 これらの追加コントロールは、コントロール ビューおよびコンテンツ ビューに含まれる、上記に一覧した「その他のコントロール」に対応します。

関連するプロパティ

次の表に、値または定義が MenuBar コントロール型に特に関連するUI オートメーションプロパティの一覧を示します。 UI オートメーションプロパティの詳細については、「UI オートメーション要素からプロパティを取得する」を参照してください。

UI Automation のプロパティ Notes
UIA_AcceleratorKeyPropertyId NULL 通常、メニュー バーにはアクセラレータ キーはありません。
UIA_AccessKeyPropertyId 「ALT」 通常、Alt キーを押すと、アプリケーション内のメニュー バーにフォーカスが移動します。
UIA_BoundingRectanglePropertyId 「ノート」を参照してください。 このプロパティで公開する値には、メニュー バー コントロールに含まれるすべてのコントロールを含める必要があります。
UIA_ControlTypePropertyId MenuBar
UIA_IsContentElementPropertyId FALSE メニュー バー コントロールは、UI オートメーション ツリーのコンテンツ ビューには含まれません。
UIA_IsControlElementPropertyId true このメニュー バー コントロールは、UI オートメーション ツリーのコントロール ビューに常に含まれます。
UIA_IsKeyboardFocusablePropertyId true メニュー バー コントロールに含まれるコントロールはキーボード フォーカスを受け取ることができるため、メニュー バー コントロールはキーボード フォーカスを受け取ることができます。
UIA_IsOffscreenPropertyId 「ノート」を参照してください。 このプロパティの値は、コントロールを画面に表示できるかどうかによって異なります。
UIA_LabeledByPropertyId NULL 通常、メニュー バー コントロールにはラベルがありません。
UIA_LocalizedControlTypePropertyId 「ノート」を参照してください。 MenuBar コントロールの種類に対応するローカライズされた文字列。 既定値は、en-US または英語 (米国) の "メニュー バー" です。
UIA_NamePropertyId 「ノート」を参照してください。 アプリケーションに複数のメニュー バーがある場合を除き、メニュー バー コントロールに名前は必要ありません。 アプリケーションに複数のメニュー バーがある場合は、このプロパティを使用して、"書式設定" や "アウトライン" などの識別名を公開します。
UIA_OrientationPropertyId 依存 このプロパティは、メニュー バー コントロールが水平または垂直のいずれかであるかを公開します。

 

必須のコントロール パターン

次の表に、メニュー バー コントロールでサポートされる必要がある UI オートメーションのコントロール パターンを示します。 コントロール パターンの詳細については、「 UI Automation Control Patterns Overview」を参照してください。

コントロール パターン サポート Notes
IExpandCollapseProvider 依存 コントロールを展開または折りたたむことができる場合は、 ExpandCollapse コントロール パターンを実装する必要があります。
IDockProvider 依存 コントロールを画面のさまざまな部分にドッキングできる場合は、 Dock コントロール パターンを実装する必要があります。
ITransformProvider 依存 コントロールのサイズ変更、回転、または移動が可能な場合は、 Transform コントロール パターンを実装する必要があります。

 

必須イベント

次の表に、メニュー バー コントロールがサポートするために必要なUI オートメーション イベントを示します。 イベントの詳細については、「 UI Automation Events Overview」を参照してください。

UI オートメーション イベント Notes
UIA_AutomationFocusChangedEventId
プロパティUIA_BoundingRectanglePropertyId 変更されたイベントです。
プロパティ変更イベントUIA_ExpandCollapseExpandCollapseStatePropertyId します。 コントロールが ExpandCollapse コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
プロパティUIA_IsEnabledPropertyId 変更されたイベントです。 コントロールが IsEnabled プロパティをサポートしている場合は、このイベントをサポートする必要があります。
プロパティUIA_IsOffscreenPropertyId 変更されたイベントです。 コントロールが IsOffscreen プロパティをサポートしている場合は、このイベントをサポートする必要があります。
UIA_StructureChangedEventId

 

概念

UI オートメーション コントロール型の概要

UI オートメーションの概要