标题用VB编写看图程序
栏目软件世界
作者云飞
发布2001年7期
相信大家都用过ACDSee之类的看图程序,有没有想过自己编写一个看图程序呢?用VB来实现这一想法是非常简便的。怎么样?Let's Go!
一、界面设计
新建一个工程,在Form1上放置一个水平滚动条、一个垂直滚动条和一个图片框Picture1。Picture1作为浏览图片的窗口,其大小固定。点击Picture1,再拖入一个图像框Image1(将Image1约束在Picture1中)。设置Image1的Stretch属性为False,使它能自动适应图片大小。点击“工程→部件”,选中Microoft Common Dialog Corntrol 6.0,工具箱中会出现对话框控件,拖入窗体,设置其Filter属性为“*.bmp|*.bmp|*.gif|*.gif|*.jpg|*.jpg|*.*|*.*”。最后,再加入两个命令按钮Command1和Command2,其Caption属性分别设为“打开”和“退出”。
二、程序代码
Option Explicit
Private Sub Command1_Click()
On Error GoTo error
'打开文件的错误处理
CommonDialog1.ShowOpen
If CommonDialog1.FileName<>“”
Then
Image1.Picture=LoadPicture(CommonDialog1.FileName)
'让选择的图片文件赋予Image1
VScroll1.Value=0
HScroll1.Value=0
Check'比较图片与图片框的大小
End If
Error:
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Resize()
'改变窗体大小时,调整各控件的位置
Picture1.Width=Form1.ScaleWidth-1500
Picture1.Top=0
Picture1.Height=Form1.ScaleHeight-HScroll1.Height
Command1.Left=Form1.Width-1250
Command2.Left=Form1.Width-1250
HScroll1.Width=Picture1.Width
HScroll1.Top=Picture1.Height
VScroll1.Height=Picture1.Height
VScroll1.Left=Picture1.Width
check
End Sub
Private Sub HScroll1_Change()
Image1.Left=-HScroll1.Value
'水平滚动条发生变化时,使图像框向相反的方向移动
End Sub
Private Sub HScroll1_Scroll()
Image1.Left=-HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Image1.Top=-VScroll1.Value
'垂直滚动条发生变化时,使图像框向相反的方向移动
End Sub
Private Sub VScroll1_Scroll()
Image1.Top=-VScroll1.Value
End Sub
Sub check()
'比较图片与图片框大小的子程序
If Image1.Height<=Picture1.Height
Then '当图片高度小于图片框高度
VScroll1.Enabled=False
'使垂直滚动条不响应鼠标事件
Image1.Top= (Picture1.Height-Image1.Height)/2 '使图片垂直居中
Else'当图片高度大于图片框高度
VScroll1.Enabled=True
'使垂直滚动条响应鼠标事件
Image1.Top=0
VScroll1.Max=Image1.Height-Picture1.Height '设置滚动最大值
End If
If Image1.Width<=Picture1.Width
Then '比较图片与图片框的宽度
HScroll1.Enabled=False
Image1.Left=(Picture1.Width - Image1.Width)/2
Else
HScroll1.Enabled=True
Image1.Left=0
HScroll1.Max=Image1.Width - Picture1.Width
End If
End Sub