
| 出版日期:2000-01-10 总期号:891 本年期号:03 |
|
给程序变个脸
王守银 在vfp编制的应用系统中,一般情况下采用的是选单方式,这时除了选单条以外,屏幕的其它部分都是空白的,屏幕的颜色比较单一,十分不美观。那么,如何在应用系统中改变屏幕窗口呢?笔者在开发应用系统时,制作了一个通用的壁纸设置程序,用来实现屏幕的壁纸功能,下面是简要介绍实现过程。 其实在vfp中实现壁纸功能是十分容易的,我们可以通过改变vfp系统中的—screen.picture属性来实现。 一、新建数据表 首先新建一个数据表bzwj.dbf,数据表中有两个字段,用来存放所有的壁纸文件名,供用户选择使用。字段属性如下表。
二、 新建表单 利用表单设计器新建一个表单,在表单各控件分布如下图:
在这个壁纸设置表单中,在数据环境下加入数据表bzwj.dbf,同时表单上使用了一个列表框控件,一个图像控件,三个命令按钮控件,一个选项按钮组控件和一些标签、形状控件组成。下面是各个控件属性及事件代码情况: 1. 表单中属性设置如下: form1.caption=′壁纸设置′ form1.activate事件代码如下: sele bzwj loca for picwz=′1′ wz1=recn() mz1=allt(bzwj.picname) 2. list1列表框的属性设置如下: list1.controlsource=bzwj.picname list1.browsource=bzwj.picname list1.browsourcetype=6-字段 list1.click event事件代码如下: mz1=allt(bzwj.picname) if thisform. optiongroup1.value=1 thisform.im1.stretch=1 else thisform.im1.stretch=2 endif thisform.im1.picture=mz1 3.command1命令按钮的属性设置如下: command1.caption=′应用′ command1.click event事件代码如下: —screen.picture=mz1 wz11=recn() repl picwz with ′ ′ all go wz11 repl picwz with ′1′ 4.command2命令按钮的属性设置如下: command2.caption=′确定′ command2.click event事件代码如下: thisform.release 5.command3命令按钮的属性设置如下: command3.caption=′浏览′ command3.click event事件代码如下: picfile= getfile(′bmp;jpg′) if len(allt(picfile))>1 sele bzwj appe blan repl picname with picfile go bott thisform.list1.click endif 6.optiongroup1选择按钮组的属性设置如下: option1.caption=′等比填充′ option2.caption=′变比填充′ optiongroup1.interactivechange event事件代码如下: thisform.image1.stretch=this.value 三、 运行表单 全部控件属性设置和事件代码输入结束后,运行这个表单,我们可以选择列表框中任一个图像文件作为应用程序的壁纸文件。 当鼠标点击列表框中一个文件名时,在图像框中将对这个图像文件进行预览,也可以通过浏览按钮查找到一个图像文件(这里允许使用bmp和jpg格式的图像文件)作为壁纸文件增加到列表框中,同时在壁纸数据表中增加这个图形文件名。选择按钮组的属性可改变图像为等比或变比显示模式。点击“应用”按钮后系统将更换为所选择的图像,同时将壁纸数据表中的标识位字段picwz赋值为“1”,使得系统在下次运行时自动将系统壁纸更换为所选择的壁纸图像,这时要在主程序(如main.prg)执行段中加入如下代码: … sele bzwj loca for picwz=′1′ wz1=recn() mz1=(bzwj.picname) —screen.picture=mz1 … 说明:一般情况下,可以事先对壁纸图像进行处理,使其同系统显示器分辨率设置相符,使图像显示更加清晰。如当显示器设置为800×600分辨率时,我们可以把壁纸图像文件处理为800×600,并将文件命名为汉字名,这样可以很直观的表达图像文件的内容。 |
||||||||||||||||||||||||||