这是“思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(VB6.0)”的再续,因为原文太长,所以第二章另起一篇博文,如果没看过原文的,应先去看看原文:点击连接查看原文,看完了再回来。
第二章:填充区域成不同的颜色,和用图片填充背景。
不知道你发现没有,通过设置窗体的BackColor属性来设置启动界面的颜色很单调,毕竟BackColor属性你只能设置一个,所以启动界面都是单色的,那么有没有方法作出其他的颜色呢?答案是,“可以”。别的不多说了,进入教程。
第一步,启动第一章中已经建好的工程。这一次要用到的是4,9,10这3个API函数。在窗体的代码窗口中,将原来的删掉,然后在窗体的Paint事件(一定是Paint事件,在Load事件添加这些代码是没用的)中添加如下的代码:
VB代码开始:
'创建椭圆区域
Rgn1 = CreateEllipticRgn(5,5,Me.Width / 15 - 10,Me.Height / 15 - 10)
'创建由图片flower2.bmp构成的刷子
PicBrush = CreatePatternBrush(LoadPicture("E:\收藏文件\图片动画\flower2.jpg").Handle)
'用上面的刷子填充椭圆区域
FillRgn Me.hdc,Rgn1,PicBrush
'创建第二个椭圆区域
Rgn2 = CreateEllipticRgn(10,60,Me.Width / 20,Me.Height / 20)
'因为之后处理中会将第二个区域挖空(设置成透明),所以无需填充
'创建第三个椭圆区域
Rgn3 = CreateEllipticRgn(80,80,Me.Width / 30,Me.Height / 30)
'创建由图片wheat.bmp构成的刷子
PicBrush = CreatePatternBrush(LoadPicture("E:\收藏文件\图片动画\wheat.jpg").Handle)
'用上面的刷子填充矩形区域
FillRgn Me.hdc,Rgn3,PicBrush
'取出第一椭圆区域与第二区域不相交的部分
a = CombineRgn(Rgn1,Rgn2,RGN_DIFF)
'再加上第三区域
B = CombineRgn(Rgn1,RGN_OR)
'将窗体设置成上面的组合区域
SetWindowRgn Me.hWnd,True
'删除用过的刷子
DeleteObject PicBrush
VB代码结束
flower2.jpg
wheat.jpg
VB代码开始:
'创建由图片flower2.bmp构成的刷子
PicBrush = CreatePatternBrush(LoadPicture("E:\收藏文件\图片动画\flower2.jpg").Handle)
'用上面的刷子填充椭圆区域
FillRgn Me.hdc,PicBrush
VB代码结束
这段代码是加在原来创建区域的代码下面的。首先,我们来看一下CreatePatternBrush函数,这个函数用作创建一个由一幅位图组成的刷子,LoadPicture函数用作加载图片,它本身是VB内部的函数,其实准确一点来说,他是一个对象,一个承载着一幅图片的对象,而Handle属性取回对应图片的句柄。至于FillRgn函数,则是用某一个刷子填充一个区域,留意到它的第一个参数吗?对,是Me.hdc,Me一般指代当前的窗口,现在就是Form1,而hdc属性称为场景设备句柄,用作取回一个对象的场景设备句柄。而第二个参数就是区域1,也就是说将区域1放到了Form1中。然后用刷子PicBrush填充区域1,就是给区域1上色(以图片填充)。好了,运行一下,效果如图所示:
是不是还看到两只鹦鹉在Kiss,那是我的桌面背景,而粉红色的花和黄色的芦苇才是窗体的部分,现在我们用这两张图片填充了窗口的区域,这样比以前好看多了。你还可以选择如木头的图片,大理石的图片等等,作出具有木头效果获具有大理石效果的启动界面。