我的Win32对话框没有接收到WM_GETOBJECT,其中lParam设置为OBJID_CLIENT

时间:2015-06-05 01:47:37

标签: winapi dialog accessibility win32gui wtl

我已经编写了一个位于模态对话框中的自定义控件(不会创建HWND)。我试图拦截WM_GETOBJECT并将lParam设置为OBJID_CLIENT,以便我可以返回自定义控件的IAccessible实现。奇怪的是,我从未看到lParam设置为OBJID_CLIENT,但我确实看到WM_GETOBJECT

该对话框来自WTL' CDialogImpl

奇怪的是,如果我创建对话框的子窗口并将其调整为适合对话框的客户区域,则该窗口将WM_GETOBJECT设置为lParam OBJID_CLIENT {1}}并且一切正常。

我需要在对话框中设置一些特殊的样式或属性才能接收正确的WM_GETOBJECT来电吗?

1 个答案:

答案 0 :(得分:1)

所以,最终我通过在WM_ERASEBKGND返回TRUEWM_NCHITTEST返回HTTRANSPARENT的对话框中创建与自定义控件相同位置的子窗口来解决此问题。在该窗口的消息映射中,我将所有WM_GETOBJECT消息转发给我的自定义控件。