我有一个带有 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-blend-user-paint ?如何在分层表单上绘制 alpha 混合控件?