다음을 통해 공유


MenuBar 컨트롤 유형

이 항목에서는 MenuBar 컨트롤 형식에 대한 Microsoft UI 자동화 지원에 대한 정보를 제공합니다.

메뉴 모음 컨트롤은 MenuBar 컨트롤 형식을 구현하는 컨트롤의 예입니다. 메뉴 모음은 사용자가 애플리케이션에 포함된 명령 및 옵션을 활성화하는 방법을 제공합니다.

다음 섹션에서는 MenuBar 컨트롤 형식에 필요한 UI 자동화 트리 구조, 속성, 컨트롤 패턴 및 이벤트를 정의합니다. UI 자동화 요구 사항은 UI 프레임워크/플랫폼이 컨트롤 형식 및 컨트롤 패턴에 대한 UI 자동화 지원을 통합하는 모든 메뉴 모음 컨트롤에 적용됩니다.

이 항목에는 다음과 같은 섹션이 포함되어 있습니다.

일반적인 트리 구조

다음 표에서는 메뉴 모음 컨트롤과 관련된 UI 자동화 트리의 일반적인 컨트롤 및 콘텐츠 뷰를 설명하고 각 보기에 포함할 수 있는 내용을 설명합니다. UI 자동화 트리에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.

컨트롤 뷰 콘텐츠 뷰
  • MenuBar
    • MenuItem(1개 이상)
    • 기타 컨트롤(0개 이상)
  • 해당 없음
    • MenuItem(1개 이상)
    • 기타 컨트롤(0개 이상)

 

메뉴 모음 컨트롤은 항상 컨트롤 뷰에 표시되지만, 일반적으로 애플리케이션에 둘 이상의 메뉴 모음이 포함되지 않는 한 최종 사용자에게 의미 있는 정보를 전달하지 않기 때문에 콘텐츠 보기에는 나타나지 않습니다.

UI 자동화 클라이언트는 UIA_MenuModeStartEventId 이벤트를 수신 대기하여 UI가 메뉴 모드로 전환될 때 지속적으로 알림을 받을 수 있습니다. 애플리케이션이 메뉴 모드에 있는 경우 메뉴 탐색을 위해 모든 키보드 입력을 캡처할 수 있습니다(예: 's'를 입력하면 애플리케이션 클라이언트 영역에 문자를 입력하는 대신 저장 메뉴가 호출될 수 있음). 논리적 일관성을 보장하려면 UIA_MenuModeStartEventId 이벤트가 첫 번째 UIA_MenuOpenedEventId 이벤트 앞에 있어야 합니다. UIA_MenuModeEndEventId 이벤트는 마지막 UIA_MenuClosedEventId 이벤트를 따릅니다. 메뉴 항목을 클릭하면 UIA_MenuModeStartEventId 이벤트와 UIA_MenuOpenedEventId이벤트가 즉시 트리거될 수도 있습니다.

메뉴 모음 컨트롤은 구조 내에서 편집 컨트롤 및 콤보 상자와 같은 다른 컨트롤을 포함할 수 있습니다. 이러한 추가 컨트롤은 컨트롤 뷰 및 콘텐츠 뷰의 위에 나열되는 “기타 컨트롤”에 해당합니다.

관련 속성

다음 표에서는 값 또는 정의가 MenuBar 컨트롤 형식과 특히 관련된 UI 자동화 속성을 나열합니다. UI 자동화 속성에 대한 자세한 내용은 UI 자동화 요소에서 속성 검색을 참조하세요.

UI 자동화 속성 참고
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를 참조하세요.

컨트롤 패턴 지원 메모
IExpandCollapseProvider 개체 컨트롤을 확장하거나 축소할 수 있는 경우 ExpandCollapse 컨트롤 패턴을 구현해야 합니다.
IDockProvider 개체 컨트롤을 화면의 다른 부분에 도킹할 수 있는 경우 Dock 컨트롤 패턴을 구현해야 합니다.
ITransformProvider 개체 컨트롤의 크기를 조정, 회전 또는 이동할 수 있는 경우 변환 컨트롤 패턴을 구현해야 합니다.

 

필요한 이벤트

다음 표에서는 메뉴 모음 컨트롤이 지원하는 데 필요한 UI 자동화 이벤트를 나열합니다. 이벤트에 대한 자세한 내용은 UI Automation Events Overview를 참조하세요.

UI 자동화 이벤트 참고
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 속성 변경 이벤트입니다.
속성 변경 이벤트를 UIA_ExpandCollapseExpandCollapseStatePropertyId. 컨트롤이 ExpandCollapse 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_IsEnabledPropertyId 속성 변경 이벤트입니다. 컨트롤이 IsEnabled 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_IsOffscreenPropertyId. 컨트롤이 IsOffscreen 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_StructureChangedEventId

 

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 개요