Share via


使用值對應注釋

建立值對應

  1. 建立對應字串。

    對應字串是控制項的數值清單,其對應至 Unicode 中人類可讀取的字串。 其開頭為 「A:」,後面接著一個數位,指出所使用的索引類型。 僅支援影像索引;因此,索引類型一律為 0。

    字串後面接著 :index:result 組。 「index」 是數位,代表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 屬性時,結果會是字串。 字串不會加上引號,而冒號會做為分隔符號。

    如需詳細資訊,請參閱 注釋對應格式

  2. 建立批註管理員,並取得其IAccPropServices介面的指標。

    以下是如何建立批註管理員的範例。

    IAccPropServices * pAccPropSvc = NULL;
    HRESULT hr = CoCreateInstance(CLSID_AccPropServices, NULL,
    CLSCTX_SERVER, IID_IAccPropServices, (void**) & pAccPropSvc));
    
    
  3. 將對應字串附加至 控制項。

    呼叫 IAccPropServices::SetHwndPropStr,並將控制項的 HWND 和指標傳遞至對應字串。

    IdProp參數將是下列其中一項。

    參數 用於
    MSAAPROPID_ROLEMAP 若要設定清單檢視或樹狀檢視控制項的角色對應。
    MSAAPROPID_STATEMAP 若要設定清單檢視或樹狀檢視控制項的狀態對應。
    PROPID_ACC_DESCRIPTIONMAP 若要設定清單檢視或樹狀檢視的描述對應。
    MSAAPROPID_VALUEMAP 在滑杆控制項上設定值對應。

     

  4. 清除。

    例如,處理 WM_DESTROY) 時,您必須先清除先前註冊的屬性並釋放批註管理員,才能 (任何值對應控制項。

    若要這樣做,請視需要呼叫 IAccPropServices::ClearHwndProps ,並釋放 IAccPropServices 的指標。

如需範例程式碼,請參閱 值對應注釋範例