未按规定使用get_accName为MFC控制

时间:2019-01-31 13:55:00

标签: c++ mfc accessibility

我有一个MFC控制。我希望其中的项目在诸如AccExplorer之类的工具中具有不同的名称。我在构造函数中调用EnableActiveAccessibility,并尝试按如下方式重载get_accName

HRESULT CGPP2XDCAMPathAndDesc::get_accName(VARIANT varChild, BSTR * pszName)
{
HRESULT res = S_OK;
if (varChild.vt != VT_I4)
{
    *pszName = NULL;
    return E_INVALIDARG;
}
switch (varChild.lVal) 
{
case CHILDID_SELF:
    *pszName = SysAllocString(_T("P2XDCAM control"));
    break;
case CHILDID_DRIVE_LIST:
    *pszName = SysAllocString(_T("Path list"));
    break;
...
default:
    res = E_UNEXPECTED;
    break;
};

return res;
}

当我尝试获取整个控件的可访问数据时,得到以下信息:AccExplorer where the root control is P2XDCAM, all its child controls are marked "Not initialized!" 点击任何关于AccExplorer的“未初始化”控件没有选择控件本身。

而如果我点击控件中的个人控制,我得到这样的: enter image description here

有什么主意要怎么做吗?

0 个答案:

没有答案