我正在尝试创建一个自定义控件,显示每像素alphablend的位图(正如你们中的一些人已经知道其他问题).
现在我在资源编辑器中使用自定义控件,并将其附加到从CWnd派生的类.当我注册我的自定义类时,我将WNDCLASS structe的hbrBackground设置为NULL_BRUSH以获得控件的透明度.
在控件的OnPaint中,我使用AlphaBlend绘制每像素alpha混合位图.
这很有效,但我有两个问题:
我想在鼠标悬停在控件上时更改显示的位图.由于控件是透明的,因此不会擦除一个位图与另一个位图不重叠的区域.如何在图像更改时删除背景?
第二个问题与两个重叠控制有关.我的控件被绘制在具有渐变的其他控件上(实际上是在其他控件内).问题是,如果我之前将控件放在z顺序中,则其他控件与我的控件重叠,并且不会显示我的控件.如果我之前将其他控件放在z顺序中,则无法在我的控件中获取鼠标消息.
也许我做错了什么,或者我错误地想要实现我的控制.任何形式的帮助将不胜感激.
谢谢,
哈维尔