当 OLEACC 发送 WM_GETOBJECT 消息时,lParam 参数设置为 OBJIDQUERYCLASSNAMEIDX 时,许多标准 USER 或常见控件 (COMCTL) 返回以下值之一。
USER 或通用控件 | 返回值 |
---|---|
Listbox | 65536+0 |
按钮 | 65536+2 |
静态的 | 65536+3 |
编辑 | 65536+4 |
组合框 | 65536+5 |
滚动条 | 65536+10 |
地位 | 65536+11 |
工具栏 | 65536+12 |
进展 | 65536+13 |
动画 | 65536+14 |
标签 | 65536+15 |
热键 | 65536+16 |
页眉 | 65536+17 |
跟踪栏 | 65536+18 |
Listview | 65536+19 |
上行 | 65536+22 |
工具提示 | 65536+24 |
Treeview | 65536+25 |
RichEdit | 65536+28 |
只有 USER 和 Windows 通用控件(COMCTL)才会从表中返回其中一个值。 如果某个窗口返回 0 以响应此消息,则窗口可能是下列情况之一:
- 自定义控件
- 上表中控件以外的控件
- 无法识别 WM_GETOBJECT 消息的系统控件的旧版本
如果窗口返回 0,客户端可能需要使用 RealGetWindowClass 或 GetClassName。 可以使用这些函数根据类名确定控件的类型。
通常,客户端可以使用 OLEACC 提供的信息。