首页 >> 读书频道 >> 电脑 >> Visual Basic窗体背景花纹的实现
 
· ADO Update C
· ADO的建立连结
· 在记忆体中的ADO记录集
· 用VB实现全屏幕图形界面
· 用VB5 Winsock
· 在VB中制作单独程序封面
· 在VB程序中怎样挂断拨号
· VB中阴影字体的实现
· 制作自己的网络搜索软件
· 利用VB的图片框实现屏幕
· 用VB编写网络寻呼机
· 用VB制作浏览器
 
· 电视剧《刁蛮公主》下载和
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

Visual Basic窗体背景花纹的实现


查看有无更新版本

关键字:VB 2006-9-18

 

   我们在开发软件过程中,为提高软件的商品化程度,感觉到界面的美观程度是一个软件能否获得成功的一个重要因素,我们仔细研究了一些成功的商品化软件,从这些软件上可以看到,程序窗口背景能显示出非常美丽的、富有立体感的花纹。而采用Visual Basic进行窗体设计,若只按照系统提供的功能,只能从有限的几种颜色中选择一种颜色或采用程序绘制一些简单的线条。而想实现立体感很强的纹理图案,一般只能采用窗体的PICTURE属性调用位图文件,使用这种方法实现有许多缺点 ,其一是窗体大小受位图大小的限制,调整起来麻烦,不具有通用性和灵活性;其二是浪费资源,因为花纹图案基本上是重复图案,采用与窗体同样大小的位图是一种浪费。
    下面介绍一种窗体背景花纹实现的方法。在窗体上建立一个网格控件,设定网格行不可见,去掉固定行和固定列,用程序实现网格控件与窗体同样大小,并随窗体大小的改变而改变。然后设计一个花纹图案,形成BMP位图文件(本文程序使用文件Pict1.bmp),或者从其它图象中截取一段图案,也可以利用Windows系统提供的图案(如c:\windows\Tiles.bmp),将其调入Picture控件。设定网格的每个单元与该图案大小相同,使单元的数量正好覆盖整个窗体背景,再将所有单元均显示该图案。通过子程序Backpict()实现以上过程,不论图案大小、窗体大小,程序都能自动调整网格控件大小和网格单元大小及单元数量。
    该程序在Visual Basic 5.0上调试成功。
    1.新建窗体Form1,属性如下:
    Caption =“背景花纹的实现”
    Borderstyle=3(无最大、最小化按钮)
    2.建网格控件Grid1,它的位置和大小将在程序中设置(与Form1同样大),属性为:
    Enabled = False(焦点不会落在网格控件Grid1上)
    Fillstyle=1(改变所有单元Text特性)
    Fixedcols=0(无固定行)
    Fixedrows=0(无固定列)
    Gridlines = False(网格行不可见),
    Visible = True
    3.建立图象控件Picture1,程序运行时将背景花纹基本图案放入其中,属性为
    Visible = False(不可见)
    Autosize = True(自动调整大小)
    4.控件中加入Sheridan 3D Controls,选取其中的三维命令按钮SSCommand,建立两个按钮
    SSCommand1.Caption=“退出”
    SSCommand2.Caption=“更换背景”(演示不同的背景图案)
    它们的属性Picture可调用与背景相同或不同的图案,如果使用普通的命令按钮控件Command也可,只是命令按钮无背景图案。
    5.建立背景图案形成子程序:
    Dim pictfile As String '位图文件名
    Dim FILEPATH As String '文件路径
    Sub Backpict(pictfile)
    picture1.ScaleMode = 3
    Form1.ScaleMode = 3
    picture1.Picture = LoadPicture(pictfile)
    '网格控件覆盖整个窗体背景
    grid1.Top = -1
    grid1.Left = -1
    grid1.Width = Width
    grid1.Height = Height
    grid1.Cols=Int(Form1.ScaleWidth/picture1.ScaleWidth) + 1
    grid1.Rows=Int(Form1.ScaleHeight/picture1.ScaleHeight) + 1
    '所有单元大小等于基本图案大小
    For i = 0 To grid1.Cols - 1
    For j = 0 To grid1.Rows - 1
    grid1.ColWidth(i) = picture1.ScaleWidth * 15
    grid1.RowHeight(j) = picture1.ScaleHeight * 15
    Next j
    Next I
 
    '选定所有单元
    grid1.SelStartCol = 0
    grid1.SelStartRow = 0
    grid1.SelEndCol = grid1.Cols - 1
    grid1.SelEndRow = grid1.Rows - 1
    grid1.Picture = Picture1.Picture
    End Sub
 
    6.窗体主程序
Private Sub Form_Load()
Private Sub Form_Load()
 
'得到运行程序路径名,路径名后带反斜杠
If Right(App.Path, 1) <> "\" Then
filePath = App.Path & "\"
Else
filePath = App.Path
End If
'窗体初始显示由Tiles.bmp基本图案组成的背景
pictfile = "c:\windows\Tiles.bmp"
backpict (pictfile)
End Sub
    7.退出程序命令按钮
Private Sub SSCommand1_Click()
End
End Sub
    8.演示不同的底纹图案
Private Sub SSCommand2_Click()
 
'两种背景图案交替演示
If pictfile = filePath & "Pict1.bmp" Then
pictfile = "c:\windows\Tiles.bmp"
Else
pictfile = filePath & "Pict1.bmp"
End If
Backpict (pictfile)
End Sub
 
VB编程的一些心得
    在大学作毕业设计的课题是编制一个教学软件,所以很自然地和VB这种易学、易懂、界面友好漂亮的语言打上了交道。在编写的过程中当然遇到了许多的问题,这里将一些简单的小程序写下来与喜爱编程的朋友们分享。
一、封面
    封面的设计是这样的,先出现一窗体,上面为你喜欢的图案。然后出现一艘从左向右行驶着的船。屏幕上方从两侧分别移动出“欢迎”两个字。
    具体的制作方法是:把预先选好的背景图案装入封面窗体中,窗体命名为CAI。再分别在三个图像控件(image)中装入预先制作好的位图“欢”、“迎”和船型图案。然后把三个image放置在初始位置(即 图案刚在窗体出现时的位置),并把它们的可视属性都设置为“false”。程序如下:
Sub Form_load()
cai.Show ′显示封面窗体
Dim i ′定义变量
image3.visible=True ′船型图像控件出现
a1: If image3.Left <6120 Then
′6120为船移动到屏幕右边的坐标,此值可以随需要选取
image3.Move image3.Left+50
′移动此图像控件如嫌移动慢,可改变移动值
Goto a1
End If
image1.visible=True ′“欢”字出现
a2: If image1.Left <2120 Then
′2120为“欢”字移动到屏幕中间的位置
image1.Move image1.Left+50 ′移动此图像控件
Goto a2
End If
image2.visible=True ′“迎”字出现
a3: If image2.Left > 5420 Then
′5420为“迎”字移动到屏幕中间的位置
image2.Move image2.Left-50 ′移动此图像控件
Goto a3
End If
For i=1 To 10000
′使窗体暂停一段时间时间长短可通过改变循环次数实现
Next i
menul.Show ′显示程序主窗体
Unload cai ′卸载封面窗体
End Sub
二、简单的“动画”
    点击一3D按钮后,屏幕表现光线平行进入一玻璃管,在管中有一散射中心,有的光线射到此中心后反射到管的初始端。程序如下:
Sub Command3Dl_Click()
Dim i, j, k, m, n ′定义变量
For i=2080 To 5520
′显示出三条线,直到图像中的散射中心处,颜色为黑色
Line(2080,2760)-(i,2760),RGB(0, 0, 0)
Line(2080,2860)-(i,2860),RGB(0, 0, 0)
Line(2080,2660)-(i,2660),RGB(0, 0, 0)
Next i
For j=5520 To 4800 Step-1 ′反射光线第一次射到管壁上
Line(5520,2760)-(j,2760-(5520-j)*.33333333),RGB
(255, 0, 0) ′反射光线,颜色为红色
Line(5520,2660)-(5520+(5520-j),2660),RGB(0, 0, 0)
Line(5520,2860)-(5520+(5520-j),2860),RGB(0, 0, 0)
′没有遇到散射中心的两条光线,为黑色,继续前进
Next j
For k=4800 To 3360 Step-1 ′反射光线第二次射到管壁上
Line(4800,2520)-(k,2520+(4800-k)*.33333333),
RGB(255, 0, 0) ′反射光线,颜色为红色
Line(6240,2660)-(6240+(4800-k),2660),RGB(0,0,0)
Line(6240,2860)-(6240+(4800-k),2860),RGB(0,0,0)
′没有遇到散射中心的两条光线,颜色为黑色
Next k
For m=3360 To 2080 Step-1 ′反射光线第三次射到管壁上
Line(3360,3000)-(m,3000-(3360-m)*.33333333),
RGB(255, 0, 0) ′反射光线,颜色为红色
Next m
End Sub
三、封底
    封底的设计是:先出现全黑的屏幕,然后从上至下逐渐拉出白底红字的“再见”的字样。先按要求在画板中做一个BMP图,上面写着“再见”。然后在一名为BYE的窗体中加入一个全屏大的Picturel, 将BMP图装入。程序如下:
Sub Form_Load()
Dim i ′定义变量
bye.Show ′封底出现
Unload menu1 ′卸载主菜单
al: If picture1.Height <7130 Then ′7130为图的高度
picturel.Height=picture1.Height+50 ′下拉屏幕
GoTo al
End If
For i=1 To 20000 ′使窗体暂停一段时间
Next i
End ′结束所有操作
End Sub

Visual Basic窗体背景花纹的实现

[ 1 ]
Visual Basic窗体背景花纹的实现 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑