现在的位置: 首页 > 综合 > 正文

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

2013年10月04日 ⁄ 综合 ⁄ 共 1796字 ⁄ 字号 评论关闭

        这是“思绪膨胀,做出龙飞凤舞,怪诞异常的程序启动界面(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, Rgn1, Rgn2, RGN_DIFF)
    '再加上第三区域
    B = CombineRgn(Rgn1, Rgn1, Rgn3, RGN_OR)
    '将窗体设置成上面的组合区域
    SetWindowRgn Me.hWnd, Rgn1, True
    '删除用过的刷子
    DeleteObject PicBrush

VB代码结束

这里是上面的代码中用到的图片:

flower2.jpg

wheat.jpg

 

我们来看一下,新加上去的一段代码:

VB代码开始:

    '创建由图片flower2.bmp构成的刷子
    PicBrush = CreatePatternBrush(LoadPicture("E:\收藏文件\图片动画\flower2.jpg").Handle)
    '用上面的刷子填充椭圆区域
    FillRgn Me.hdc, Rgn1, PicBrush

VB代码结束

            这段代码是加在原来创建区域的代码下面的。首先,我们来看一下CreatePatternBrush函数,这个函数用作创建一个由一幅位图组成的刷子,LoadPicture函数用作加载图片,它本身是VB内部的函数,其实准确一点来说,他是一个对象,一个承载着一幅图片的对象,而Handle属性取回对应图片的句柄。至于FillRgn函数,则是用某一个刷子填充一个区域,留意到它的第一个参数吗?对,是Me.hdc,Me一般指代当前的窗口,现在就是Form1,而hdc属性称为场景设备句柄,用作取回一个对象的场景设备句柄。而第二个参数就是区域1,也就是说将区域1放到了Form1中。然后用刷子PicBrush填充区域1,就是给区域1上色(以图片填充)。好了,运行一下,效果如图所示:

是不是还看到两只鹦鹉在Kiss,那是我的桌面背景,而粉红色的花和黄色的芦苇才是窗体的部分,现在我们用这两张图片填充了窗口的区域,这样比以前好看多了。你还可以选择如木头的图片,大理石的图片等等,作出具有木头效果获具有大理石效果的启动界面。

 

 

 

抱歉!评论已关闭.