一个透明位图类的例子2010-09-18 vckbase 刘晖编写一个简单的透明位图类,有时候可以为程序润色不少,下面是我写的一个程序的UI,个人觉得蛮有意思的。

图一 外观这个类可以插入到任何一个程序当中,它提供一个统一的接口,接口函数接收图象的资源索引号、长、宽3个参数。当然,你也可以加上一个父窗口的指针参数,用来决定该类对象Create行为,便于指定该图象代表的窗口应该依附在哪个父窗口之上。编写这个类需要熟悉对CRgn类的运用。如成员函数CombineRgn和SetWindowRgn,具体信息请查阅msdn。那么好,下面我们来一步步创建这个类。一、首先要准备一幅用来展示在UI上的图象,自己定义一种透明色,用该色来填充透明部分,这里要注意的是,透明色应该是该图象中颜色最少的色,还要注意的是透明和非透明的交界处一定要求清晰,不能存在过渡色。这里我使用的是RGB(255, 0,255)。如下:

图二 透明位图