我有一个带有ws_ex_layered扩展样式集的分层表单。我使用Createwindowex(...)API函数创建了一个孩子“编辑”控件;控制它在那里但没有涂漆,表单上没有任何东西。

我知道,当在顶部窗口上使用ws_ex_layered样式时,不会再发送wm_paint消息,并且子控件都没有收到它,以便为什么它不会出现。

请考虑到表单透明度设置为255,使用UpdatelayeredWindow(...)API具有透明图像。

当我通过编辑控件悬停鼠标时,将显示文本光标,我可以复制它内部的文本。

我猜我要处理的问题是以某种方式使控件接受用户绘画。

我已经尝试用与形式相同的技术绘制控制,并且我已经从表单中创建了兼容的DC,但我不知道这是可能的,我的控件仍然没有绘制。

如果我向该控件发送WM_PPTERCLIENT,它应该工作吗?在这种情况下,DC应该是分层父形式?我也试过这个,但我无法做到它。

正常形式: http://img580.imageshack.us/i/formy.png/

分层表单: http://img6.imageshack.us/i/layeredform.png/

我的问题是如何让我的编辑控制接受Alpha-Blended-User-Paint?如何在分层形式上绘制Alpha-Blended控件?

有帮助吗?

解决方案

最后我找到了一种方法来做,

我要做的是获取每个控件的位图 - 图像,并在表单的背景上绘制它......当我应用表单的UpdatelayeredWindow时,表单位图包含所有控件,

我还知道这是否是最好的做法,虽然

该方法很好地工作,但我必须完善它并添加更多的交互+ Alpha混纺控件。在另一个手中是有关的

这里是: http://img84.imageshack.us/img84/3172/73845647.png

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top