运用VB4浏览图片一法

Author: 张成 Date: 1997-01-01

  用VB4编制有关图片显示方面的程序时,有时会遇到要打开的图象比所存放的图片框大的情况,将图片框中的AUTODRAW设置为TRUE,可以使图片框与要打开的图象一样大,但在实际应用中,上述方法并不能看到整个图片。虽然用Windows的API函数中的BITBLT()可以实现在图片框中移动图象,但这种方法太专业且使用复杂。其实可以运用VB4新增的绘图功能PAINT来解决这个问题。具体实现方法如下:
  一、在窗体中设置横滚动条(HSCROLL1)和竖滚动条(VSCROLL1)用于图片的定位。
  二、在横滚动条控件和竖滚动条中写入以下代码:
  private sub hscroll1_change() "当改变HSCROLL1.VALUE时激发
    picture1.picture=loadpicture "清空图片框
    picture1.paintpicture loadpicture("picturename"),-hscroll1.value,-vscroll1.value
    end sub
  private sub vscroll1-change() "当激发VSCROLL1.VALUE时激发
    picture1.picture=loadpicture
    picture1.paintpicture loadpicture("picturename"),-hscroll1.value,-vscroll1.value
  end sub
  程序中的PICTURENAME表示要打开的图片文件名,之所以用-HSCROLL1.VALUE和-VSCROLL1.VALUE是因为图片框的标度在缺省设定时左上角定义为(0,0)。当HSCROLL1.VALUE=10,VSCROLL.VALUE=50则画图起点在(-10,-50)处,这两种情况下所显示的图象不一样,因此产生一种图片在移动的感觉,这样就解决了在小图片框看大图片的问题。