微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题如何实现图片缩略显示
栏目软件世界
作者肖枭
发布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下的生成数组控件,请大家细看,好了,你可以生成你漂亮的软件了。