在VB中滚动比窗口大的图形

Author: 马文涛 Date: 1997-01-01

  Visual Basic窗体不能大于屏幕的大小。在程序设计中,我们有时需要显示比窗口还要大的图形,这就需要滚动图形来实现。滚动图形的方法很多,本文介绍一种简单的方法加以实现。
  1.在Visual Basic中建一个新项目,缺省建立Form1窗体。
  2.给Form1窗体增加两个图片框,分别是Picturel和Picture2。图片框的大小将在程序中自动设置。
  3.给Form1窗体增加一个水平滚动条HScroll1和垂直滚动条VScroll1。滚动条的大小将在程序中自动设置。
  4.将以下代码加入到Form_Load事件。
  Private Sub Form_Load()
  ’设置窗体标题
  form1.Caption=”滚动图片框中的图形”
  ’窗体和图片框的ScaleMode属性,以像素为单位
  Form1.ScaleMode=3
  Picture1.ScaleMode=3
  Picture2.ScaleMode=3
  ’使Picture2图片框能自动调节大小
  Picture2.AutoSize=True
  Picture2.Picture=LoadPicture(”f:\demo\bmp\flg107.bmp”)
  End Sub
  5.将以下代码加入到Form_Resize事件。
  Private Sub Form_Resize()
  ’图片框的大小能适应窗体的大小
  If ScaleWidth>VScroll1.Width And ScaleHeight>HScroll1.Height Then
  Picture1.Move 0,0 ScaleWidth-VScroll1.Width,ScaleHeight-HScroll1.Height
  End If
  Picture2.Move 0,0
  ’设置水平滚动条的位置
  HScroll1.Top=Picture1.Height
  HScroll1.Left=0
  HScroll1.Width=Picture1.Width
  ’设置垂直滚动条的位置
  VScroll1.Top=0
  VScroll1.Left=Picture1.Width
  VScroll1.Height=Picture1.Height+HScroll1.Height
  ’设置滚动条的Max和Min属性
  HScroll1.Max=Picture2.Width-Picture1.Width
  VScroll1.Max=Picture2.Height-Picture1.Height
  HScroll1.Min=HScroll1.Max/100
  VScroll1.Min=VScroll1.Max/100
  ’若Picture1比Picture2加载的图形要大,则使滚动条无效
  If Picture1.Height<Picture2.Height Then
  VScroll1.Enabled=-1
  Else
  VScroll1.Enabled=0
  End If
  If Picture1.Width<Picture2.Width Then
  HScroll1.Enabled=-1
  Else
  HScroll1.Enabled=0
  End If
  End Sub