用VisualBasic窗体背景花纹的实现

yuanfang59

yuanfang59

2016-02-19 18:10

下面图老师小编要跟大家分享用VisualBasic窗体背景花纹的实现,简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!
我们在开发软件过程中,为提高软件的商品化程度,感觉到界面的美观程度是一个软件能否获得成功的一个重要因素,我们仔细研究了一些成功的商品化软件,从这些软件上可以看到,程序窗口背景能显示出非常美丽的、富有立体感的花纹。而采用VisualBasic3.0或4.0进行窗体设计,若只按照系统提供的功能,只能从有限的几种颜色中选择一种颜色或采用程序绘制一些简单的线条。而想实现立体感很强的纹理图案,一般只能采用窗体的PICTURE属性调用位图文件,使用这种方法实现有许多缺点,其一是窗体大小受位图大小的限制,调整起来麻烦,不具有通用性和灵活性;其二是浪费资源,因为花纹图案基本上是重复图案,采用与窗体同样大小的位图是一种浪费。
  
  下面介绍一种窗体背景花纹实现的方法。在窗体上建立一个网格控件,设定网格行不可见,去掉固定行和固定列,用程序实现网格控件与窗体同样大小,并随窗体大小的改变而改变。然后设计一个花纹图案,形成BMP位图文件(本文程序使用文件Pict1.bmp),或者从其它图象中截取一段图案,也可以利用Windows系统提供的图案(如c:windowsTiles.bmp),将其调入Picture控件。设定网格的每个单元与该图案大小相同,使单元的数量正好覆盖整个窗体背景,再将所有单元均显示该图案。通过子程序Backpict()实现以上过程,不论图案大小、窗体大小,程序都能自动调整网格控件大小和网格单元大小及单元数量。该程序在VisualBasic4.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.控件中加入Sheridan3DControls,选取其中的三维命令按钮SSCommand,建立两个按钮
  SSCommand1.Caption=“退出”
  SSCommand2.Caption=“更换背景”(演示不同的背景图案)
  
  它们的属性Picture可调用与背景相同或不同的图案,如果使用普通的命令按钮控件Command也可,只是命令按钮无背景图案。
  
  5.建立背景图案形成子程序:
  
  DimpictfileAsString'位图文件名
  DimFILEPATHAsString'文件路径
  SubBackpict(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
  '所有单元大小等于基本图案大小
  ForI=0Togrid1.Cols-1
  Forj=0Togrid1.Rows-1
  grid1.ColWidth(I)=picture1.ScaleWidth*15
  grid1.RowHeight(j)=picture1.ScaleHeight*15
  Nextj
  NextI
  '选定所有单元
  grid1.SelStartCol=0
  grid1.SelStartRow=0
  grid1.SelEndCol=grid1.Cols-1
  grid1.SelEndRow=grid1.Rows-1
  grid1.Picture=Picture1.Picture
  EndSub
  6.窗体主程序
  PrivateSubForm_Load()
  PrivateSubForm_Load()
  '得到运行程序路径名,路径名后带反斜杠
  IfRight(App.Path,1)""Then
  filePath=App.Path&""
  Else
  filePath=App.Path
  EndIf
  '窗体初始显示由Tiles.bmp基本图案组成的背景
  pictfile="c:windowsTiles.bmp"
  backpict(pictfile)
  EndSub
  7.退出程序命令按钮
  PrivateSubSSCommand1_Click()
  End
  EndSub
  8.演示不同的底纹图案
  PrivateSubSSCommand2_Click()
  '两种背景图案交替演示
  Ifpictfile=filePath&"Pict1.bmp"Then
  pictfile="c:windowsTiles.bmp"
  Else
  pictfile=filePath&"Pict1.bmp"
  EndIf
  Backpict(pictfile)
  EndSub->

展开更多 50%)
分享

猜你喜欢

用VisualBasic窗体背景花纹的实现

编程语言 网络编程
用VisualBasic窗体背景花纹的实现

VisualBasic窗体背景花纹的实现

编程语言 网络编程
VisualBasic窗体背景花纹的实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

实现窗体的渐变背景

编程语言 网络编程
实现窗体的渐变背景

用Word窗体实现文档套打

办公软件
用Word窗体实现文档套打

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

椭圆窗体的实现

C语言教程 C语言函数
椭圆窗体的实现

用Delphi实现快闪窗体信息提示

Delphi
用Delphi实现快闪窗体信息提示

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

怎么更改QQ消息记录的保存位置

怎么更改QQ消息记录的保存位置

开发网络应用的5个技巧

开发网络应用的5个技巧
下拉加载更多内容 ↓