我有一个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混合控件?
问题回答 – dst 2011-02-27 15:28:39