Ho un pulsante denominato CWnd
classe -derived, e vogliono usare CWnd
funzioni di accessibilità, sovrascrivo questa funzione nella mia classe:funzioni sovrascritte per l'interfaccia IAccessible non funzionano in CWnd-pilotato classe
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);
Quando Eseguo il programma e imposta un punto di rottura nell'implementazione di una di queste funzioni, il programma non entra in queste funzioni e utilizza la funzione genitore, può aiutarmi?
attuazione get_accName:
HRESULT Button::get_accName(VARIANT varChild, BSTR *pszName)
{
//*pszName = SysAllocString(lpstrTitle);
return S_OK;
}
io chiamo EnableActiveAccessibility()
nel costruttore di questa classe, ma non funziona ancora.
Quando ho l'override del metodo get_accName in IAccessible interfaccia per una casella combinata in un'applicazione MFC di dialogo basata, il metodo viene eseguito. Ma quando viene sovrascritto per altri controlli standard come Button, Modifica, Casella di controllo, l'esecuzione non arriva. –
Non fai finta di usare 'get_accValue'? – sergiol