计算机二级VB辅导:可以换肤的窗体计算机二级考试

文章作者 100test 发表时间 2009:04:30 06:46:49
来源 100Test.Com百考试题网


  大家都知道大名鼎鼎的WINAMP播放器是支持“换肤”的,也就是说,我们可以动态的改变窗体和控件的背景图案,使窗体看起来十分漂亮,而且能够不断更换新的面孔。那我们能让自己的程序也实现这样的效果吗?答案是肯定的,下面我们就一起来看看用VB6做出的可以换肤的窗体。

  程序包含一个主窗体和一个模块,为了使窗体上的控件也能以我们选择的图案作为背景,我们使用了Microsoft Forms2.0 Object Library的控件组,在默认状态下它不在控件面板中,我们可以在控件面板上点鼠标右键“添加”,在“添加选择对话框”中找到这个控件并选中添加进来。这时会多出几个控件,如下图所示红线圈住的部分:

  这个程序中我们使用了其中的三个控件,乍一看它们和默认的标签、文本框、按钮没有什么区别,但它们的属性中多出了BackStyle属性,我们正是利用了这个属性,将控件设为背景透明0-fmBackStyleTransparent,这样控件的背景就能和窗体的背景保持一致了。
  为了学习方便,提供的源码已经作了详细的中文注释,看看代码:
  ’-------------------------------------------
  ’   一个可换肤的窗体的例子
  ’-------------------------------------------
  ’ 洪恩在线 求知无限
  ’-------------------------------------------
  ’程序说明:
  ’这个例子中,我们可以为应用程序的窗体设置背景图
  ’片,这是通过在窗体上平铺图片实现的,而你会发现
  ’窗体上的其他控件也变为透明,这是应用了控件集合
  ’Microsoft Forms2.0 Object Library得以实现的
  ’你必须在组件面板中添加此项,然后把要使用的控件
  ’的BackStyle属性设为0-fmBackStyleTransparent
  ’即可。
  ’------------------------------------------
  Private Sub CmdExit_Click()
  End
  End Sub
  ’也可点击“选择背景图片”按钮,在程序运行过程中更换背景图片
  Private Sub CmdSel_Click()
  ’打开选择文件对话框
  Cdl1.ShowOpen
  ’选中的图片文件的路径赋值给BackPicture变量(全局变量,在模块中定义)
  BackPicture = Cdl1.FileName
  ’换肤
  ShowBackGround Frmmain
  End Sub
  ’窗体加载时自动从应用程序所在的目录下寻找default.bmp文件,并把它设置为窗体背景
  ’我们可以用其它图片替换此文件以为应用程序换上不同的皮肤
  Private Sub Form_Load()
  ’取得背景图片的完整路径
  BackPicture = App.Path "default.JPG"
  ’ShowBackGround子过程(在模块中定义),为窗体设置背景
  ShowBackGround Frmmain
  End Sub
  -------------------------
   ’------------------------------------------------------
  ’以下是模块中的源码:
  ’------------------------------------------------------
  ’存储背景图片的变量
  Global BackPicture As String
  ’设置背景图片的子过程
  Sub ShowBackGround(Frm As Form)
  ’将Pic定义为StdPicture对象(StdPicture对象是包含各种图元的对象)
  Dim Pic As StdPicture
  ’如果选择图片时,按下“取消”按钮(也就是没有选中文件)
  If BackPicture = "" Then Exit Sub
  ’先清空窗体上原有图片背景
  Frm.Cls
  ’如果出现异常错误,转向错误处理语句
  On Error GoTo ErrorPic
  ’将选中的图片文件加载到Pic中
  Set Pic = LoadPicture(BackPicture)
  ’下面将图片排满整个窗体
  W = 0
  H1 = Pic.Height / 27
  W1 = Pic.Width / 27
  While W <. Frm.ScaleWidth
  H = 0
  While H <. Frm.ScaleHeight
  Frm.PaintPicture Pic, W, H
  H = H H1
  Wend
  W = W W1
  Wend
  ’ShowBorder Frm
  Exit Sub


相关文章


2003年4月全国计算机等级考试二级VB语言笔试试题及答案计算机二级考试
VB辅导:如何建立一个VB.NET日期_时间值计算机二级考试
计算机二级:在状态栏中显示帮助信息计算机二级考试
计算机二级:用OLE实现文件拖放计算机二级考试
计算机二级VB辅导:可以换肤的窗体计算机二级考试
二级VB辅导:VB中自动提示保存修改后的文件计算机二级考试
VB辅导:用BASIC语言写智能手机程序计算机二级考试
vb.net实现简单的眼睛保护系统计算机二级考试
用VB制作李萨如图形动态演示程序计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛