在C++Builder中显示透明位图
我们知道,GIF图像格式支持透明显示,而BMP图像格式不支持。如果在Microsoft photo editor中将位图存储为透明色,将会出现错误提示。但是,在C++Builder中,可以轻松显示透明位图。与透明GIF图像相比,透明位图有一个很大的优势:GIF图像格式支持256色,但是位图可以支持真彩色。
-在C++Builder中显示透明位图
-1.采用Timage组件。
-接下来,我们来做一个简单的飞机飞过蓝天的动画。因为移动的平面是用透明位图显示的,所以看起来相当逼真。
-(1)激活C++Builder下的菜单“File/NewApplication”创建一个新项目。表单单元保存为文件planemain.cpp,项目文件保存为plane.cpp
-(2)在Form1上添加一个新的Tbutton组件Button1,
-添加一个Ttimer组件Timer1,添加三个Timage组件Image1、Image2和Image3,并添加一个Tlabel。
-(3)双击窗体上的Image1,调入蓝天的位图BlueSky.bmp,将其Transpartant属性设置为false,表示不透明度作为背景;双击Image2,在飞机的位图Plane.bmp中调用,将其Transparent属性设置为true,即transparency,Autosize属性设置为true,将Image2放在Image1上。此时,可以看到飞机已经融入了蓝天。为了比较,双击Image3调用飞机的位图Plane.bmp,将其Transparent属性设置为false,表示不透明,将其Autosize属性设置为true。将Label1的Caption属性设置为“源位图”。将Button1的Caption属性设置为“开始”。将定时器1的Enabled属性设置为false,Interval属性设置为100(决定飞机的飞行速度,可以调整)。
-(4)定时器1的OnTimer事件控制飞机的运动,代码如下:
void__fastcallTForm1::定时器1Timer
(收件人*发件人)
{ Image2-> Left = Image2-> Left+1;}
-按钮1的OnClick事件使用以下代码启动飞机:
void _ _ fastcalltform 1::button 1 click
(收件人*发件人)
{定时器1->启用=真;}
位律师回复
0条评论