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