C++ WinApi:如何向屏幕阅读器的所有者绘制按钮添加替代文本?

C++ WinApi:如何向屏幕阅读器的所有者绘制按钮添加替代文本?,c++,winapi,button,accessibility,ownerdrawn,C++,Winapi,Button,Accessibility,Ownerdrawn,我创建了一个应用程序(C++,纯Win32,无ATL/MFC),它有一个带有两个按钮的窗口 这些是所有者绘制的按钮,是窗口本身的子项,我使用带有BS_OWNERDRAW样式的CreateWindowEx创建它们 我现在正在做可访问性测试,屏幕阅读器没有接收到我按钮上的文本。要让屏幕阅读器读出按钮文本,是否需要采取特殊步骤?正如Scott提到的,尝试设置按钮的标准窗口文本,即使是手动绘制。否则,您必须使控件实现该界面,并响应WM_GETOBJECT窗口消息,以便它可以向屏幕阅读器和自动化工具提供自

我创建了一个应用程序(C++,纯Win32,无ATL/MFC),它有一个带有两个按钮的窗口

这些是所有者绘制的按钮,是窗口本身的子项,我使用带有BS_OWNERDRAW样式的CreateWindowEx创建它们


我现在正在做可访问性测试,屏幕阅读器没有接收到我按钮上的文本。要让屏幕阅读器读出按钮文本,是否需要采取特殊步骤?

正如Scott提到的,尝试设置按钮的标准窗口文本,即使是手动绘制。否则,您必须使控件实现该界面,并响应
WM_GETOBJECT
窗口消息,以便它可以向屏幕阅读器和自动化工具提供自定义文本等详细信息。

您的按钮不显示文本??是您的问题吗?是吗?否,按钮正在显示文本,屏幕读取器没有识别按钮上的文本并将其读取。您是否尝试使用SetWindow文本向按钮实现提供文本?(这可能是屏幕阅读器寻找它的地方,不管按钮是否自己绘制。)微软有一个完整的可访问性API供屏幕阅读器使用,特别是这样他们就不必求助于此类手动操作。默认情况下,标准UI控件实现可访问性,但我不确定所有者绘制的控件如何处理这一点。