思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(VB6.0)[第二章:填充区域成不同的颜色,和用图片填充背景]

前端之家收集整理的这篇文章主要介绍了思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(VB6.0)[第二章:填充区域成不同的颜色,和用图片填充背景]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是“思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(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,那是我的桌面背景,而粉红色的花和黄色的芦苇才是窗体的部分,现在我们用这两张图片填充了窗口的区域,这样比以前好看多了。你还可以选择如木头的图片,大理石的图片等等,作出具有木头效果获具有大理石效果的启动界面。

猜你在找的VB相关文章