Megosztás a következőn keresztül:


Értéktérkép-jelölés használata

Értéktérkép létrehozása

  1. Hozzon létre egy leképezési karakterláncot.

    A megfeleltetési sztringek egy olyan vezérlőelem numerikus értékeinek listája, amely egy emberi olvasásra alkalmas Unicode-sztringnek felel meg. Az "A:" betűvel kezdődik, majd egy számmal, amely a használt index típusát jelzi. Csak a képindexek támogatottak; ezért az index típusa mindig 0.

    A stringet :index:eredmény párok követik. Az "index" egy szám, amely egy List-View vagy fanézet képindexét, illetve egy csúszka vezérlőelem értékét jelenti.

    Az eredményérték az a szám, amelyet akkor kapunk, amikor egy listanézet vagy fanézet vezérlőelem Szerepkör vagy Állapot tulajdonságát megfeleltetjük. Az ilyen számok decimális vagy hexadecimális értékben, "0x" előtaggal vannak kifejezve.

    A leképezési sztring mindig kettősponttal (":") végződik.

    Az alábbiakban egy listanézetben vagy fanézet vezérlőelemben lévő jelölőnégyzet állapot- és szerepkör-tulajdonságait ábrázoló jelölt térképet láthat. A nézetben két elem jelöl jelölőnégyzeteket, és mindegyikben a bejelölt és a nem bejelölt állapotnak megfelelő képek találhatók.

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

    Az érvényes szerepkör- és állapotértékeket az Objektumszerepkörök és objektumállapot-állandókcímű témakörben talál.

    Az index értéke negatív lehet egy csúszka vezérlőelem tulajdonságainak megfeleltetésekor.

    Érték vagy Leírás tulajdonság leképezésekor az eredmény egy karakterlánc. A sztringek nem idézőjelek, a kettőspont pedig elválasztóként működik.

    További információért lásd: jegyzettérkép-formátum.

  2. Hozza létre az annotációkezelőt, és szerezzen be egy mutatót aIAccPropServicesfelületére.

    Az alábbiakban egy példa látható a jegyzetkezelő létrehozásának módjára.

    IAccPropServices * pAccPropSvc = NULL;
    HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL,
    CLSCTX_SERVER, IID_IAccPropServices, (void**) & pAccPropSvc));
    
    
  3. Csatolja a leképezési sztringet a vezérlőhöz.

    Hívja meg IAccPropServices::SetHwndPropStr, adja át a vezérlő HWND ét, és a leképezési sztringre mutatót adjon át.

    Az IdProp paraméter az alábbiak egyike lesz.

    Paraméter A következőhöz használatos:
    MSAAPROPID_ROLEMAP Szerepkör-térkép beállítása lista nézet- vagy fa nézet-vezérlőkhöz.
    MSAAPROPID_STATEMAP Állapottérkép beállítása listanézet- vagy fanézet-vezérlőkhöz.
    PROPID_ACC_DESCRIPTIONMAP Leírási térkép beállítása a lista- vagy fa nézetekhez.
    MSAAPROPID_VALUEMAP Értéktérkép beállítása csúszkavezérlőkön.

     

  4. Tisztítás.

    Mielőtt megsemmisítené az értéktérkép széljegyzetekkel ellátott vezérlőinek (például WM_DESTROYkezelésekor), törölnie kell a korábban regisztrált tulajdonságokat, és fel kell szabadítania a széljegyzetkezelőt.

    Ehhez szükség szerint hívja fel IAccPropServices::ClearHwndProps, és engedje fel a mutatót az IAccPropServices.

A mintakódért lásd értéktérképi jegyzetminta.