当前位置:  开发笔记 > 编程语言 > 正文

创建自定义透明控件

如何解决《创建自定义透明控件》经验,为你挑选了0个好方法。

我正在尝试创建一个自定义控件,显示每像素alphablend的位图(正如你们中的一些人已经知道其他问题).

现在我在资源编辑器中使用自定义控件,并将其附加到从CWnd派生的类.当我注册我的自定义类时,我将WNDCLASS structe的hbrBackground设置为NULL_BRUSH以获得控件的透明度.

在控件的OnPaint中,我使用AlphaBlend绘制每像素alpha混合位图.

这很有效,但我有两个问题:

我想在鼠标悬停在控件上时更改显示的位图.由于控件是透明的,因此不会擦除一个位图与另一个位图不重叠的区域.如何在图像更改时删除背景?

第二个问题与两个重叠控制有关.我的控件被绘制在具有渐变的其他控件上(实际上是在其他控件内).问题是,如果我之前将控件放在z顺序中,则其他控件与我的控件重叠,并且不会显示我的控件.如果我之前将其他控件放在z顺序中,则无法在我的控件中获取鼠标消息.

也许我做错了什么,或者我错误地想要实现我的控制.任何形式的帮助将不胜感激.

谢谢,

哈维尔

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有