用VB编写看图程序

相信大家都用过ACDSee之类的看图程序,有没有想过自己编写一个看图程序呢?用VB来实现这一想法是非常简便的。怎么样?Let's Go!
  #1 一、界面设计
   新建一个工程,在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属性分别设为“打开”和“退出”。
  #1 二、程序代码
   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