在VB中滚动比窗口大的图形 马文涛 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