?? csdn_文檔中心_創建更易理解的動態注釋用戶界面.htm
字號:
<TD width="26%"><FONT class=90v size=2>(VT_I4)</FONT></TD></TR>
<TR vAlign=top>
<TD width="74%"><FONT class=90v
size=2>PROPID_ACC_STATE</FONT></TD>
<TD width="26%"><FONT class=90v size=2>(VT_I4)</FONT></TD></TR>
<TR vAlign=top>
<TD width="74%"><FONT class=90v
size=2>PROPID_ACC_VALUE</FONT></TD>
<TD width="26%"><FONT class=90v
size=2>(VT_BSTR)</FONT></TD></TR></TBODY></TABLE><BR>
<P><B>示例 1:設置對話框中圖標的 Description 屬性。</B> <PRE><CODE>#include <oleacc.h>
...
BOOL CALLBACK DialogProc( HMENU Hmenu,
UINT uMsg,
WPARAM wParam,
LPARAM lParam )
{
switch( uMsg )
{
case WM_INITDIALOG:
{
IAccPropServices * pAccPropSvc = NULL;
HRESULT hr = CoCreateInstance( CLSID_AccPropServices,
NULL,
CLSCTX_SERVER,
IID_IAccPropServices,
(void **) & pAccPropSvc );
if( hr == S_OK && pAccPropSvc )
{
HMENU HmenuIcon = GetDlgItem( Hmenu, IDC_ICON1);
pAccPropSvc->SetHmenuPropStr( HandleToLong(HmenuIcon),
OBJID_CLIENT,
0,
PROPID_ACC_DESCRIPTION,
L"Picture of a thermometer");
pAccPropSvc->Release();
}
...
}
...
}
...
}
</CODE></PRE>
<P><B>數值映射注釋</B>
<P>除了直接注釋 <B><FONT face=arial>IAccessible</FONT></B>
屬性外,經常需要將控件專用數值或索引轉換為用戶可理解的字符串。一個示例就是<B>顯示屬性,設置</B>選項卡上的屏幕分辨率游標。盡管每個游標位置對應于不同的分辨率(例如,640
x 480,1024 x 768),但是控件并不知道這種對應關系,因此不能將該信息傳遞給 Active
Accessibility。只有使用該控件的開發人員才能提供這種關系。</P>
<P>幸運的是,利用 Active Accessibility 2.0
的數值映射注釋,該任務極為簡單。要使用這種注釋,開發人員定義從游標位置到顯示分辨率的映射并將其傳遞給注釋服務。Active
Accessibility 將控件內部值映射到應該顯示的屬性字符串。</P>
<P><B>支持的映射</B>
<P>由于需要控件專用知識來支持映射,因此只有有限數量的控件和屬性支持數值映射注釋。</P>
<P class=indent><B>游標數值映射:<FONT
face=arial>PROPID_ACC_VALUEMAP<BR></FONT></B>由 LEACC
游標(也稱為軌跡條)代理所支持,該屬性包含從內部游標位置到人類可讀字符串的映射。如果當前游標值存在于數值映射中,將顯示對應的字符串,替換默認的百分比字符串(例如,"50")。</P>
<P class=indent>這在游標用于從有限的離散選項中選擇一個選項的場合很有用。</P>
<P class=indent><B><FONT face=arial>ListView 和 TreeView
</FONT>數值映射:<FONT face=arial>PROPID_ACC_ROLEMAP,
PROPID_ACC_STATEMAP</B></P></FONT>
<P class=indent>由 OLEACC ListView 和 TreeView
代理所支持,這些映射提供從狀態圖象索引到角色和狀態值的映射。</P>
<P class=indent>某些 ListViews 和 TreeViews
使用外觀如復選框和單選按鈕的狀態圖象來實現列表或復選框和單選選項樹。這些映射使這些狀態圖象映射到相應的角色(典型情況為
ROLE_SYSTEM_RADIOBUTTON 或 ROLE_SYSTEM_CHECKBOX)和附加狀態位(典型情況為
STATE_SYSTEM_CHECKED)。</P>
<P class=indent>注釋狀態值與 OLEACC(例如焦點和可見性)使用位 OR 運算符 (|)
計算出的狀態位相結合。</P>
<P class=indent>映射可以使用 TreeView 或 ListView
項的圖象索引、狀態圖象索引或覆蓋圖象索引作為關鍵字,并分別以 0、1 或 2 等索引關鍵字表示。</P>
<P><B>注釋映射格式</B>
<P>注釋映射包含一系列以分隔字符分隔的<B>字段</B>:
<UL type=disc>
<LI><B>大寫字母 'A':</B>表示使用了該特殊編碼方案。未來的編碼方案可能支持附加前綴。<BR><BR>
<LI><B>分隔字符:</B>典型情況使用分號 (':'),但是這可以是除空 (NUL)
或空格以外的任何字符。由于該字符將用于分隔字段的分隔符,因此不能用作映射值的一部分。<BR><BR>
<LI><B>表示使用哪個關鍵字的值:</B>對于 <B><FONT face=arial>TreeView</FONT></B>
和 <B><FONT face=arial>ListView</FONT></B>
角色和狀態映射,該關鍵字可以為表示各個圖象索引、狀態圖象索引或覆蓋圖象索引的 0、1 或
2。對于游標或其他沒有提供關鍵字選項的控件,該值必須為 0。<BR><BR>
<LI>分隔符<BR><BR>
<LI>一系列鍵-值對,每對由下列內容組成:
<UL type=disc>
<LI><B>鍵字符串:</B>通常為數字,可以為十進制或十六進制(以 "0x" 前綴開頭)。<BR><BR>
<LI><B>分隔符</B><BR><BR>
<LI><B>值字符串:</B>這是數值映射中的字符串和角色和狀態映射中的數字(可以使用十進制或十六進制)。<BR><BR>
<LI><B>分隔符</B> </LI></UL></LI></UL>
<P>映射字符串的示例包括:</P><PRE><CODE>A:0:0:Cold:1:Warm:3:Hot:
</CODE></PRE>
<P>如果數值映射應用于游標控件,游標在位置 1 時將顯示 "Warm"。請注意該示例映射中沒有值
2,因此在該位置時將顯示默認值(在游標中,應該是百分比值 "33")。</P><PRE><CODE>A:1:0:34:1:0x2C:
</CODE></PRE>
<P>該映射中的初始值 '1' 表示狀態圖象索引(而不是圖象索引或覆蓋圖象索引)將用作關鍵字。當用作 TreeView
的角色映射時,如果該項的狀態圖象索引為 0,則角色將以 ROLE_SYSTEM_LISTITEM(對應于十進制值
34)顯示。對于狀態圖象索引為 1 的項,其角色將顯示為 ROLE_SYSTEM_CHECKBUTTON(對應于十六進制值
0x2C)。具有其他狀態圖象索引的 TreeView 項將具有 TreeView 項的默認角色
ROLE_SYSTEM_OUTLINEITEM。</P>
<P><B>回調注釋</B>
<P>回調注釋為 Active Accessibility 2.0
支持的第三種注釋。它允許開發人員注冊回調對象響應元素注釋屬性客戶請求。該回調對象必須實現 <B><FONT
face=arial>IAccPropServer</FONT></B> 接口并注冊為 Active Accessibility
注冊服務。一旦注冊,它將負責響應所有訪問元素屬性注釋的客戶請求。</P>
<P>要使用回調注釋注釋對象屬性:
<UL type=disc>
<LI>獲得指向要注釋的訪問元素的 <B><FONT face=arial>IAccessible</FONT></B>
接口指針。<BR><BR>
<LI>IAccIdentity 接口的 QI,并調用 GetIdentityString()
獲得訪問元素的標識字符串。<BR><BR>
<LI><B>同時創建</B> <B><FONT face=arial>AccPropServices</B></FONT>
對象。<BR><BR>
<LI>創建實現 <B><FONT face=arial>IAccPropServer</B></FONT> 的 COM
對象。<BR><BR>
<LI>調用 <B><FONT
face=arial>IAccPropServices::SetPropServer</FONT></B>,傳遞標識字符串,表示要重載屬性的
GUID,和指向 <B><FONT face=arial>IAccPropServer</FONT></B>
回調對象的指針。<BR><BR>
<LI>當有客戶端請求訪問元素的注釋屬性時,將調用回調對象提供正確的值。 </LI></UL>
<P>使用直接注釋時,<B><FONT face=arial>SetHwndPropServer</B> 或
<B>SetHmenuPropServer</FONT></B> 方法可用于指定 HWND/HMENU、對象 ID 和子
ID,而不是檢索標識字符串并用其調用 <B><FONT
face=arial>SetPropServer</FONT></B>。在容器對象上使用 <B><FONT
face=arial>SetPropServer</B>、<B>SetHwndPropServer</B> 或
<B>SetHmenuPropServer</B></FONT> 時,開發人員還可以指定注釋應該應用于該容器的所有子元素。</P>
<P>下列屬性只能使用回調注釋進行注釋,返回值通常為 VT_DISPATCH 變量中的 <B><FONT
face=arial>IAccessible</FONT></B>:</P>
<P class=indent>PROPID_ACC_FOCUS</P>
<P class=indent>PROPID_ACC_SELECTION</P>
<P class=indent>PROPID_ACC_PARENT</P>
<P class=indent>PROPID_ACC_NAV_UP</P>
<P class=indent>PROPID_ACC_NAV_DOWN</P>
<P class=indent>PROPID_ACC_NAV_LEFT</P>
<P class=indent>PROPID_ACC_NAV_RIGHT</P>
<P class=indent>PROPID_ACC_NAV_PREV</P>
<P class=indent>PROPID_ACC_NAV_NEXT</P>
<P class=indent>PROPID_ACC_NAV_FIRSTCHILD</P>
<P class=indent>PROPID_ACC_NAV_LASTCHILD</P>
<P><B>示例 2:根據 ListView
項的需求提供自定義幫助字符串<BR></B></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>對該文的評論</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文檔中心_創建更易理解的動態注釋用戶界面.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要評論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你沒有登陸,無法發表評論。 請先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=3229">登陸</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注冊</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">網站簡介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務</A> - <A
href="http://www.csdn.net/map/map.shtm">網站地圖</A> - <A
href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">聯系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文檔中心_創建更易理解的動態注釋用戶界面.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百聯美達美公司 版權所有 京ICP證020026號</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內容結束//--><!--結束//--></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -