では動作しません。私は、ボタンの名前CWnd
由来のクラスを持っている、とCWnd
アクセシビリティ機能を使用したい、私は私のクラスでは、この関数をオーバーライド:オーバーライド機能は、cwndは-drivedクラス
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);
私は、プログラムを実行し、これらの関数のいずれかの実装でポイントをブレーク設定し、プログラムはこれらの関数を入力し、代わりに親関数を使用して、何か私を助けることができますか? get_accNameの
実装:
HRESULT Button::get_accName(VARIANT varChild, BSTR *pszName)
{
//*pszName = SysAllocString(lpstrTitle);
return S_OK;
}
私はこのクラスのコンストラクタでEnableActiveAccessibility()
を呼び出すが、まだ動作しません。あなたは間違ってこれらのオーバーライドメソッドを呼び出すことが可能
class CWnd {
virtual HRESULT get_accChildCount(long *pcountChildren);
};
class Button : public CWnd {
virtual HRESULT get_accChildCount(long *pcountChildren) {
HRESULT childCount = CWnd:get_accChildCount(long *pcountChildren);
//you can use the value from the ancestor class if it is of any use
//to you or add your own code
childCount = 1234;
return childCount;
}
};
から、私は、ダイアログベースのMFCアプリケーションでのコンボボックスののIAccessibleインターフェイスでget_accNameメソッドをオーバーライドする場合は、メソッドが実行されます。しかし、Button、Edit、Checkboxなどの他の標準コントロールでオーバーライドされても、実行はそこには届きません。 –
'get_accValue'を使うふりをしていませんか? – sergiol