加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(VB6.0)[第二

发布时间:2020-12-16 22:51:46 所属栏目:大数据 来源:网络整理
导读:这是“思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(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,那是我的桌面背景,而粉红色的花和黄色的芦苇才是窗体的部分,现在我们用这两张图片填充了窗口的区域,这样比以前好看多了。你还可以选择如木头的图片,大理石的图片等等,作出具有木头效果获具有大理石效果的启动界面。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读