选择显示字体大小

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.建立背景图案形成子程序:

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:windowstiles.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:windowstiles.bmp"
else
pictfile = filepath & "pict1.bmp"
end if
backpict (pictfile)
end sub


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons