Ich habe eine CWnd
abgeleitete Klasse mit dem Namen Button und wollen CWnd
Zugänglichkeitsfunktionen verwenden, überschreiben ich diese Funktion in meiner Klasse:Überschrieben Funktionen für IAccessible Schnittstelle funktionieren nicht in cwnd-drived Klasse
virtual HRESULT get_accName(VARIANT varChild, BSTR *pszName);
virtual HRESULT get_accChildCount(long *pcountChildren);
virtual HRESULT get_accDefaultAction(VARIANT varChild, BSTR *pszDefaultAction);
virtual HRESULT get_accDescription(VARIANT varChild, BSTR *pszDescription);
virtual HRESULT get_accKeyboardShortcut(VARIANT varChild, BSTR *pszKeyboardShortcut);
virtual HRESULT get_accParent(IDispatch **ppdispParent);
virtual HRESULT get_accRole(VARIANT varChild, VARIANT *pvarRole);
virtual HRESULT get_accState(VARIANT varChild, VARIANT *pvarState);
virtual HRESULT get_accValue(VARIANT varChild, BSTR *pszValue);
Wenn Ich führe das Programm, und setze einen Punkt in der Implementierung von irgendwelchen dieser Funktionen ein, Programm tritt nicht in diese Funktionen ein, und verwendet stattdessen Elternfunktion, kann irgendeine mir helfen?
Implementierung von get_accName:
HRESULT Button::get_accName(VARIANT varChild, BSTR *pszName)
{
//*pszName = SysAllocString(lpstrTitle);
return S_OK;
}
Ich nenne EnableActiveAccessibility()
in Konstruktor dieser Klasse, aber noch nicht arbeiten.
Wenn ich die get_accName Methode in IAccessible Schnittstelle für ein Kombinationsfeld in einem dialogbasierten MFC-Anwendung außer Kraft setzen, wird das Verfahren ausgeführt. Aber wenn es für andere Standardsteuerelemente wie Button, Edit, Checkbox außer Kraft gesetzt wird, kommt die Ausführung nicht dorthin. –
Tun Sie nicht vorgeben, 'get_accValue' zu verwenden? – sergiol