2011-02-16 98 views
-1

我有一个WS_EX_LAYERED扩展样式集的分层形式。我使用CreateWindowEx(...)API函数创建了一个“EDIT”子控件;它在那里的控件,但没有画,没有任何东西出现在窗体上。在C分层窗口上的alpha混合控制#

我知道,当在顶部窗口上使用WS_EX_LAYERED样式时,WM_PAINT消息不再发送,两个子控件都不会收到它,因此它不会出现。

请考虑到窗体的不透明度设置为255,并且使用UpdateLayeredWindow(...)API将背景绘制为透明图像。

当我将鼠标悬停在EDIT控件上时,文本光标出现,我可以复制其中的文本。

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

我已经尝试使用与窗体相同的技术绘制控件,为此我创建了一个兼容的DC,但是我不知道这是否可能,我的控件仍然没有绘制。

它应该工作,如果我发送该控件的WM_PRINTCLIENT?在这种情况下,DC应该是分层的父表单?我也尝试过这一点,但我无法让它工作。

范式:http://img580.imageshack.us/i/formy.png/

分层形式:http://img6.imageshack.us/i/layeredform.png/

我的问题是如何让我的编辑控件接受alpha混合用户漆?如何在分层窗体上绘制一个alpha混合控件?

回答

-1

在最后,我已经找到一种方法来做到这一点,

什么,我要做的就是让每个控件的位图图像,并绘制在表格的背景,...当我申请UpdateLayeredWindow该表单,表单包含位图的所有控件,

我仍然不`吨知道这是否是虽然

的方法效果很好的一个最佳实践,但我必须去完善它,并添加更多的互动+ alpha混合控制..另一方面,功能有

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

+0

问题回答 – dst 2011-02-27 15:28:39