我已经编写了一个位于模态对话框中的自定义控件(不会创建HWND
)。我试图拦截WM_GETOBJECT
并将lParam
设置为OBJID_CLIENT
,以便我可以返回自定义控件的IAccessible
实现。奇怪的是,我从未看到lParam
设置为OBJID_CLIENT
,但我确实看到WM_GETOBJECT
。
该对话框来自WTL' CDialogImpl
奇怪的是,如果我创建对话框的子窗口并将其调整为适合对话框的客户区域,则该窗口将WM_GETOBJECT
设置为lParam
OBJID_CLIENT
{1}}并且一切正常。
我需要在对话框中设置一些特殊的样式或属性才能接收正确的WM_GETOBJECT
来电吗?
答案 0 :(得分:1)
所以,最终我通过在WM_ERASEBKGND
返回TRUE
和WM_NCHITTEST
返回HTTRANSPARENT
的对话框中创建与自定义控件相同位置的子窗口来解决此问题。在该窗口的消息映射中,我将所有WM_GETOBJECT
消息转发给我的自定义控件。