我有一个带有WS_EX_LAYERED扩展样式集的分层表单。我使用CreateWindowEx(...)API函数创建了一个子“EDIT”控件;控制它在那里,但没有画,表格上没有任何内容。
我知道在顶部窗口使用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-blended-user-paint?如何在分层表格上绘制alpha混合控件?
答案 0 :(得分:-1)
最后我找到了办法,
我必须要做的是获取每个控件的位图图像并将其绘制在窗体的背景上,以便......当我为窗体应用UpdateLayeredWindow时,窗体位图包含所有控件,
我仍然不知道这是否是最好的做法
该方法运行良好但我必须完善它并添加更多交互+ alpha混合控件..另一方面功能是