Udostępnij przez


Używanie adnotacji mapy wartości

Aby utworzyć mapy wartości

  1. Utwórz ciąg mapowania.

    Ciąg mapowania to lista wartości liczbowych kontrolki odpowiadających ciągowi czytelnym dla człowieka w formacie Unicode. Zaczyna się od ciągu "A:", po którym następuje liczba wskazująca typ używanego indeksu. Obsługiwane są tylko indeksy obrazów; dlatego typ indeksu jest zawsze 0.

    Po ciągu następują pary :index:result. "indeks" to liczba reprezentująca indeks obrazu dla List-View lub widoku drzewa albo wartość kontrolki suwaka.

    Wynikowa wartość jest liczbą uzyskaną, gdy mapujesz właściwość Rola lub Stan dla widoku listy lub widoku drzewa. Takie liczby są wyrażane w systemie dziesiętnym lub szesnastkowym z prefiksem "0x".

    Ciąg mapowania jest zawsze zakończony ostatnim dwukropkiem (":").

    Poniżej przedstawiono przykład mapy adnotacji dla właściwości stanu i roli pola wyboru w kontrolce widoku listy lub widoku drzewa. W widoku znajdują się dwa elementy reprezentujące pola wyboru, a każdy z nich ma obrazy odpowiadające zaznaczonemu i niezaznaczonemu stanowi.

    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":";
    

    Aby uzyskać prawidłowe wartości roli i stanu, zobacz role obiektów i stałe stanu obiektu .

    Wartość indeksu może być ujemna podczas mapowania właściwości kontrolki suwaka.

    Podczas mapowania właściwości Value lub Description wynik jest ciągiem. Ciągi nie są ujmowane w cudzysłów, a dwukropki działają jako ograniczniki.

    Aby uzyskać więcej informacji, zobacz Format Mapy Adnotacji .

  2. Utwórz menedżera adnotacji i uzyskaj wskaźnik do interfejsuIAccPropServices.

    Poniżej przedstawiono przykład tworzenia menedżera adnotacji.

    IAccPropServices * pAccPropSvc = NULL;
    HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL,
    CLSCTX_SERVER, IID_IAccPropServices, (void**) & pAccPropSvc));
    
    
  3. Załącz ciąg mapowania do kontrolki.

    Wywołaj IAccPropServices::SetHwndPropStr, przekazując HWND kontrolki i wskaźnik do ciągu znaków mapowania.

    Parametr IdProp będzie jednym z następujących parametrów.

    Parametr Używane do
    MSAAPROPID_ROLEMAP Aby ustawić mapę roli dla kontrolek widoku listy lub widoku drzewa.
    MSAAPROPID_STATEMAP Aby ustawić mapę stanu dla kontrolek widoku listy lub widoku drzewa.
    PROPID_ACC_DESCRIPTIONMAP Aby ustawić mapę opisu dla widoku listy lub widoku drzewa.
    MSAAPROPID_VALUEMAP Aby ustawić mapę wartości na kontrolkach suwaka.

     

  4. Czyszczenie.

    Przed zniszczeniem kontrolek z adnotacjami na mapie wartości (na przykład podczas obsługi WM_DESTROY), należy wyczyścić wcześniej zarejestrowane właściwości i zwolnić menedżera adnotacji.

    Aby to zrobić, wywołaj IAccPropServices::ClearHwndProps odpowiednio i zwolnij wskaźnika do IAccPropServices.

Aby uzyskać przykładowy kod, zobacz przykład adnotacji mapowania wartości .