값 맵 주석 사용
값 맵을 만들려면
매핑 문자열을 만듭니다.
매핑 문자열은 유니코드에서 사람이 읽을 수 있는 문자열에 해당하는 컨트롤의 숫자 값 목록입니다. "A:"로 시작하고 사용된 인덱스 유형을 나타내는 숫자로 시작합니다. 이미지 인덱스만 지원됩니다. 따라서 인덱스 형식은 항상 0입니다.
문자열 뒤에 :index:result 쌍이 잇습니다. "인덱스"는 List-View 또는 트리 뷰의 이미지 인덱스 또는 슬라이더 컨트롤의 값을 나타내는 숫자입니다.
결과 값은 목록 보기 또는 트리 뷰 컨트롤에 대한 Role 또는 State 속성을 매핑할 때 얻은 숫자입니다. 이러한 숫자는 "0x" 접두사를 사용하여 10진수 또는 16진수로 표현됩니다.
매핑 문자열은 항상 최종 콜론(":")으로 종료됩니다.
다음은 목록 보기 또는 트리 뷰 컨트롤에 있는 검사 상자의 상태 및 역할 속성에 대한 주석 맵의 예입니다. 보기에는 검사 상자를 나타내는 두 개의 항목이 있으며 각 항목에는 선택됨 및 선택되지 않은 상태에 해당하는 이미지가 있습니다.
LPCWSTR g_ListOrTreeStateMap = L"A:0" // Index type; always 0. ! L":0:0x00" // Image 0 is normal ! L":1:0x10" // Image 1 is checked - STATE_SYSTEM_CHECKED (0x10) ! L":"; LPCWSTR g_ListOrTreeRoleMap = L"A:0" // Index type; always 0. ! L":0:0x2C" // Image 0 is a check box - ROLE_SYSTEM_CHECKBUTTON (0x2c) ! L":1:0x2C" // image 1 is also a check box ! L":";
유효한 역할 및 상태 값은 개체 역할 및 개체 상태 상수를 참조하세요.
슬라이더 컨트롤의 속성을 매핑할 때 인덱스 값은 음수일 수 있습니다.
Value 또는 Description 속성을 매핑하면 결과는 문자열입니다. 문자열은 따옴표가 붙지 않으며 콜론은 구분 기호 역할을 합니다.
자세한 내용은 주석 맵 형식을 참조하세요.
주석 관리자를 만들고IAccPropServices인터페이스에 대한 포인터를 가져옵니다.
다음은 주석 관리자를 만드는 방법의 예입니다.
IAccPropServices * pAccPropSvc = NULL; HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL, CLSCTX_SERVER, IID_IAccPropServices, (void**) & pAccPropSvc));
매핑 문자열을 컨트롤에 연결합니다.
IAccPropServices::SetHwndPropStr를 호출하여 컨트롤의 HWND와 매핑 문자열에 대한 포인터를 전달합니다.
IdProp 매개 변수는 다음 중 하나입니다.
매개 변수 사용 대상 MSAAPROPID_ROLEMAP 목록 보기 또는 트리 뷰 컨트롤에 대한 역할 맵을 설정하려면 MSAAPROPID_STATEMAP 목록 보기 또는 트리 뷰 컨트롤에 대한 상태 맵을 설정하려면 PROPID_ACC_DESCRIPTIONMAP 목록 보기 또는 트리 뷰에 대한 설명 맵을 설정하려면 MSAAPROPID_VALUEMAP 슬라이더 컨트롤에 값 맵을 설정하려면 정리합니다.
값 맵 주석이 추가된 컨트롤을 삭제하기 전에(예: WM_DESTROY 처리할 때) 이전에 등록된 속성을 지우고 주석 관리자를 해제해야 합니다.
이렇게 하려면 IAccPropServices::ClearHwndProps 를 적절하게 호출하고 IAccPropServices에 대한 포인터를 해제합니다.
샘플 코드는 값 맵 주석 샘플을 참조하세요.