Winapi 使子窗口对用户输入透明

Winapi 使子窗口对用户输入透明,winapi,vb6,button,controls,richedit,Winapi,Vb6,Button,Controls,Richedit,有没有办法让输入“通过”子窗口并到达其父窗口?我的问题是:我正在用一个可以格式化的标签创建自定义控件。因此,我没有试图重新发明轮子,而是添加了一个RichTextEdit控件,并应用了WS_EX_TRANSPARENT扩展窗口样式。这看起来像我想要的,但有明显的焦点和输入问题。是否有一种有效的方法将子窗口的消息传递给父窗口或应用一组样式,从而使子窗口看起来像是按钮上绘制的文本?您可以使用它将windows消息发送到子窗口。您是否尝试过将TabStop设置为False和Locked True 如果

有没有办法让输入“通过”子窗口并到达其父窗口?我的问题是:我正在用一个可以格式化的标签创建自定义控件。因此,我没有试图重新发明轮子,而是添加了一个
RichTextEdit
控件,并应用了
WS_EX_TRANSPARENT
扩展窗口样式。这看起来像我想要的,但有明显的焦点和输入问题。是否有一种有效的方法将子窗口的消息传递给父窗口或应用一组样式,从而使子窗口看起来像是按钮上绘制的文本?

您可以使用它将windows消息发送到子窗口。

您是否尝试过将TabStop设置为False和Locked True


如果您已经尝试过,请道歉。

您可以通过覆盖消息并返回
HTTRANSPARENT
轻松做到这一点。只需确保关闭
WS_TABSTOP
,这样控件就不能用tab键进入。

我实际上认为只将焦点发送回父窗口会很简单,但我低估了窗口。我放弃了这种尝试,取而代之的是:1)创建一个MemDC并通过WM_PAINT调用将RichEdit控件绘制到它上面2)透明将MemDC添加到按钮上感谢您的回复。:)哇,谢谢!我一定会记住这一点,但是我使用了透明的方法,并保留了32bpp的文本图像,因此我可以通过使用带有GDIPlus的颜色矩阵来应用图像转换。再次感谢。禁用的控件有不同的外观,但我使用WM_PAINT/Blt方法。谢谢。是的,但是在这种情况下,你可以把它放在一个PictureBox中,然后禁用它,以保留启用的外观和禁用的交互