用VB编写看图程序 云飞 2001年 7期 相信大家都用过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