Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para criar um mapa de valor
Crie uma cadeia de caracteres de mapeamento.
Uma cadeia de caracteres de mapeamento é uma lista de valores numéricos de um controle correspondentes a uma cadeia de caracteres legível por humanos em Unicode. Começa com "A:" seguido de um número que indica o tipo de índice utilizado. Apenas índices de imagem são suportados; portanto, o tipo de índice é sempre 0.
A sequência é seguida por pares de :índice:resultado. O "índice" é um número que representa um índice de imagem para um List-View ou Tree-View, ou o valor para um controle deslizante.
O valor resultante é um número obtido quando você mapeia a propriedade Role ou State para um controle de exibição de lista ou de árvore. Tais números são expressos em decimal ou hexadecimal com um prefixo "0x".
A cadeia de caracteres de mapeamento é sempre terminada com dois pontos finais (":").
A seguir está um exemplo de mapa de anotações para as propriedades Estado e Função de uma caixa de seleção num controlo de exibição de lista ou de árvore. Há dois itens na vista que representam caixas de seleção e cada um tem imagens correspondentes ao estado selecionado e não selecionado.
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":";Para obter valores válidos de Função e Estado, consulte Funções de objeto e Constantes de estado de objeto.
O valor do índice pode ser negativo quando você mapeia propriedades para um controle deslizante.
Quando você mapeia uma propriedade Value ou Description, o resultado é uma cadeia de caracteres. As cadeias de caracteres não são colocadas entre aspas e os dois pontos atuam como delimitadores.
Para obter mais informações, consulte Formato de mapa de anotação.
Crie o gestor de anotações e obtenha um ponteiro para a sua interfaceIAccPropServices.
Segue-se um exemplo de como criar o gestor de anotações.
IAccPropServices * pAccPropSvc = NULL; HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL, CLSCTX_SERVER, IID_IAccPropServices, (void**) & pAccPropSvc));Anexe a cadeia de caracteres de mapeamento ao controle.
Chame IAccPropServices::SetHwndPropStr, passando a HWND do controle e um ponteiro para a cadeia de caracteres de mapeamento.
O parâmetro IdProp poderá ser um dos seguintes.
Parâmetro Usado para MSAAPROPID_ROLEMAP Para definir um mapa de funções para controles de exibição de lista ou de árvore. MSAAPROPID_STATEMAP Para definir um mapa de estado para controles de exibição de lista ou de árvore. PROPID_ACC_DESCRIPTIONMAP Para definir um mapa de descrição para visualização em lista ou em árvore. MSAAPROPID_VALUEMAP Para definir um mapa de valores em controles deslizantes. Limpeza.
Antes de destruir qualquer controle anotado de mapa de valor (por exemplo, ao manipular WM_DESTROY), você deve limpar as propriedades registradas anteriormente e liberar o gerenciador de anotações.
Para fazer isso, chame IAccPropServices::ClearHwndProps conforme apropriado e libere o ponteiro para IAccPropServices.
Para obter o código de exemplo, consulte Value Map Annotation Sample.