MenuBar コントロールの種類
このトピックでは、MenuBar コントロールの種類に対する Microsoft UI オートメーション のサポートについて説明します。
メニュー バー コントロールは、 MenuBar コントロールの種類を実装するコントロールの例です。 メニュー バーは、ユーザーがアプリケーションに含まれるコマンドおよびオプションをアクティブにするための手段を提供します。
次のセクションでは、MenuBar コントロール型に必要なUI オートメーションツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI オートメーションの要件は、UI フレームワーク/プラットフォームがコントロールの種類とコントロール パターンUI オートメーションサポートを統合するすべてのメニュー バー コントロールに適用されます。
このトピックは、次のセクションで構成されています。
一般的なツリー構造
次の表は、メニュー バー コントロールに関連するUI オートメーション ツリーの一般的なコントロールとコンテンツ ビューを示し、各ビューに含めることができる内容を示しています。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。
コントロール ビュー | コンテンツ ビュー |
---|---|
|
|
メニュー バー コントロールは常にコントロール ビューに表示されますが、コンテンツ ビューには表示されません。これは、通常、エンド ユーザーに意味のある情報を伝えないためです (アプリケーションに複数のメニュー バーが含まれている場合を除く)。
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 |
関連トピック