Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создание карты значений
Создать строку сопоставления.
Строка сопоставления — это список числовых значений элемента управления, соответствующих удобочитаемой строке в Юникоде. Он начинается с "A:", за которым следует число, указывающее тип используемого индекса. Поддерживаются только индексы изображений; Поэтому тип индекса всегда равен 0.
Следом за строкой идут пары :index:result. Индекс — это число, представляющее индекс изображения для элемента управления List-View или древовидного представления, или значение для ползунка.
Полученное значение — это число, полученное при сопоставлении свойства Role или State для представления списка или элемента управления представлением дерева. Такие числа выражаются в десятичном или шестнадцатеричном виде с префиксом "0x".
Строка сопоставления всегда завершается последней двоеточием (":").
Ниже приведен пример карты заметок для свойств состояния и роли флажка в представлении списка или элементе управления представлением дерева. В представлении есть два элемента в виде флажков, и каждый из них имеет изображения, соответствующие состояниям выбора и снятия выбора.
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.
Пример кода см. в примере аннотации карты значений .