如何实现图片缩略显示 肖枭 2001年 37期 相信大家都用过ACDSee这款经典的看图软件吧,或许有许多人对它里面的缩略图预览功能感到神秘。它到底是如何判断文件夹下有多少图片文件呢?又是怎样生成缩略图的呢?想到这儿,可能许多VB迷们早就想把这个技术加入到自己的软件当中去了,下面,我就介绍一种简易的方法给大家,VB Fans不妨一试。   坐下来仔细想想,生成缩略图主要有三个难点:1.判断该生成多少个图片框控件;2.如何不重复地把图片载入到图片框控件中;3.把所有这些图片框控件按顺序排列好。只要把这些问题解决了,其它的技术就不难了,对此我会在此文中一一介绍。   说了那么多,现在来制作一个实例。新建一个工程,把Form1的Caption属性设置为”缩略图片浏览器”;BorderStyle属性设置为3-Fixed Dialog;WindowState属性设置为2-Maximized。再在其上分别放置一个PictureBox,一个DriveListBox,一个DirListBox,一个FileListBox,两个CommandButton控件和一个Image控件。   源程序如下:   Private Sub Command1_Click   '以下是”:预览”的代码   On Error Resume Next   Dim i As Integer   Dim j As Integer   j = File1.ListCount + 1   If Image12.Visible = True Then   Call Command2_Click   End If   For i = 1 To j   Load Image1(i)   Image1(i).Visible = True   Image1(i).Left = Image1(i - 1).Left + 1400   Image1(i).Top = Image1(i - 1).Top   Image1(i- 1).Picture = LoadPicture(Dir1.Path + “\” + File1.List(i - 1))   DoEvents   If Image1(i).Left >= 10000 Then   Image1(i).Top = Image1(i - 1).Top + 1200   Image1(i).Left = Image1(0).Left   End If   Next   '判断是否有Image1控件被Picture1遮挡了   If (Image1(j - 3).Top + Image1(j - 3).Height) > Frame1.Height Then   Frame1.Height = Image1(j - 3).Top + Image1(j - 3).Height + 100   End If   VScroll1.Max = Frame1.Height - Picture1.Height   End Sub   Private Sub Command2_Click()   Dim i As Integer   For i = 1 To Image1.Count - 1   Unload Image1(i)   Next   Image1(0).Picture = LoadPicture(“”)   VScroll1.Max = 0   End Sub   Private Sub Dir1_Change()   File1.Path = Dir1.Path   End Sub   Private Sub Drive1_Change()   Dir1.Path = Drive1.Drive   End Sub   Private Sub Form_Load()   Image1(0).Picture = LoadPicture(“”)   End Sub   Private Sub VScroll1_Change()   Picture2.Top = -VScroll1.Value   End Sub   以上就是整个软件的源程序,重要的部分在于Command1_Click下的生成数组控件,请大家细看,好了,你可以生成你漂亮的软件了。