用vb6设计缩略图功能的图片浏览器

上传人:第*** 文档编号:30652517 上传时间:2018-01-31 格式:DOC 页数:5 大小:27.50KB
返回 下载 相关 举报
用vb6设计缩略图功能的图片浏览器_第1页
第1页 / 共5页
用vb6设计缩略图功能的图片浏览器_第2页
第2页 / 共5页
用vb6设计缩略图功能的图片浏览器_第3页
第3页 / 共5页
用vb6设计缩略图功能的图片浏览器_第4页
第4页 / 共5页
用vb6设计缩略图功能的图片浏览器_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《用vb6设计缩略图功能的图片浏览器》由会员分享,可在线阅读,更多相关《用vb6设计缩略图功能的图片浏览器(5页珍藏版)》请在金锄头文库上搜索。

1、用 vb6 设计缩略图功能的图片浏览器(一)编程思路;性能良好的图片浏览器首先要能够支持广泛的图片文件格式 ,这一点 VB6 基本控件picture 已经为我们做好了。我们所要考虑的是如何将一幅图片极其清晰的按照设定大小显示到“容器”中“容器”可以是多种多样的,而且要充分利用动态创建和卸载控件技术,以便适应不同目录所含有的不同个数的图片,当然正确、有序排列缩略图片也是非常关键的。我在这里向大家展示利用动态创建 COMMAND(按钮)控件作为载体的实现方法,它不仅可以以缩略图方式进行图片预览和全屏图片浏览,而且可以自动随窗体的变化进行相应的伸展注意本文关于界面容器、缩略图载体容器和缩略图载体的概

2、念。(二)界面设计;(1)添加四个 command 控件 command(18)Style = 1 Graphical,caption 属性分别是“选择” 、 “浏览” 、 “预览” (缩略图察看) 、 “上一张” 、 “下一张” 、 “向下” 、 “向上” 、“退出”这些按钮用来进行系统相关操作,它们是可以添加图片的;(2)添加一个 filelist 控件 filhidden,设置其 Pattern= *.bmp;*.dib;*.rle;*.gif;*.jpg;*.wmf;*.emf;*.ico;*.cur,visible=fales该文件列表控件用来读取选中目录下的所有图片文件名称,程序运

3、行时是不可见的;(3)添加 picture 控件 picFrame 作为界面容器;在其上面添加四个 picture 控件picSlide 作为缩略图载体容器,picload 设置 autosize=true 作为缓冲图片要以原格式装载图片,picThumb 用来装载缩略后的图片;一个 VScrollBarL 控件 vsbSlide用来进行图片调整,以便在缩略图较多时能够进行相应的调整,picture1 用来全屏显示图片;设置上述所有图片控件 ScaleMode=3Pixel;它们用来进行界面调整和缩略图片的生成;(4)在缩略图载体容器 picslide 上面添加命令按钮 command 控件数

4、组原型 com(0) ,设置其 Style = 1 Graphical、Visible = 0 ;用来作为缩略图片的载体;(5)添加一个 StatusBar 控件 St 用来显示有关的信息;(6)单击工程 菜单项目 ,选择部件,在部件对话框的 控件栏目中选择MICROSOFT WINDOWS COMMON CONTROLS 6.0,确认在它前面的复选框中有一个黑色的对号,单击确认 ,添加对该控件的引用。添加一个 progressbar 控件 pb用来显示缩略图的集成进度;(7)添加定时器 timer1用来实行图片的幻灯浏览;按层次调整上述控件到适当位置(如图片 1 所示) ;(三)程序源代码;

5、Option Explicit Dim Apath As String, Pi As Integer, bZ As Integer.Private Declare Function StretchBlt Lib GDI32 (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As Long, By

6、Val nSrcHeight As Long, ByVal dwRop As Long) As Long/本函数用来对图片进行缩放处理,生成缩略图片.Private Sub CreateThumbs()/本函数用来创造缩略图片,并且将它们放到足够的file:/缩略图载体 com(i)中Dim lIdx As LongDim lFilCnt As LongDim sText As String, i As IntegerScreen.MousePointer = vbHourglass/设置鼠标指针为漏斗类型picSlide.Move 0, 0, Com(0).Width, Com(0).Hei

7、ghtpicSlide.Visible = True/初始化缩略图容器载体Pr.Visible = TruePr.Value = 0Pr.Max = filHidden.ListCountPr.Min = 0/启动进度条Com(0).Picture = LoadPictureCom(0).Visible = FalseIf Com.Count 1 ThenFor i = 1 To Com.Count - 1Unload Com(i)NextEnd If$AGESEP$/初始化缩略图载体 comOn Error Resume Nextfile:/忽略错误file:/lFilCnt = filHi

8、dden.ListCountFor lIdx = 0 To filHidden.ListCount - 1Load Com(lIdx)Com(lIdx).Caption = filHidden.List(lIdx)Com(lIdx).Visible = TruePr.Value = 1Next lIdx/创建所需要的所有缩略图载体file:/载体的个数等于选定目录下图片文件个数 Call Form_Resize/对载体进行排序DoEventsFor lIdx = 0 To filHidden.ListCount - 1picLoad.Picture = LoadPicture()picThum

9、b.ClspicLoad.Picture = LoadPicture(Apath & filHidden.List(lIdx)StretchBlt picThumb.hdc, 0, 0, picThumb.Width, picThumb.Height,picLoad.hdc, 0, 0, _ picLoad.ScaleWidth, picLoad.ScaleHeight, vbSrcCopySet Com(lIdx).Picture = picThumb.Image/按顺序为载体添加缩略图片 DoEventsPr.Value = lIdx + 1Next lIdxSet picLoad.Pic

10、ture = LoadPicture()Set picThumb.Picture = LoadPicture()Pr.Visible = FalseScreen.MousePointer = 0/释放占用的资源、隐藏进度条、恢复鼠标指针End Sub.Private Sub filHidden_PathChange()$AGESEP$/当文件目录改变时计算出标准的目录变量file:/显示有关的目录和图片文件个数信息 file:/调用缩略图创建过程函数/. CreateThumbsEnd SubPrivate Sub Form_Resize()file:/本函数用来对程序界面控件位置进行相应的调

11、整file:/并且调整缩略图的位置Dim X As LongDim Y As LongDim lIdx As LongDim lCols As LongIf Me.WindowState vbMinimized ThenIf Me.Width 600 * Screen.TwipsPerPixelX ThenMe.Width = 600 * Screen.TwipsPerPixelX ElseIf Me.Height 378 * Screen.TwipsPerPixelY ThenMe.Height = 378 * Screen.TwipsPerPixelYend if/限定软件界面的最小宽度和

12、高度ElsepicFrame.Move 2, Command1.Height, Me.ScaleWidth - 11, Me.ScaleHeight - Command1.Height - St.Height vsbSlide.Move picFrame.ScaleWidth - vsbSlide.Width, 0, vsbSlide.Width, picFrame.ScaleHeightlCols = Int(picFrame.ScaleWidth - vsbSlide.Width) / Com(0).Width)For lIdx = 0 To Com.Count - 1X = (lIdx

13、Mod lCols) * Com(0).WidthY = Int(lIdx / lCols) * Com(0).HeightCom(lIdx).Move X, YNext lIicSlide.Width = lCols * Com(0).WidthpicSlide.Height = Int(Com.Count /lCols)*Com(0).HeightIf Int(Com.Count / lCols) (Com.Count / lCols) ThenpicSlide.Height = picSlide.Height + Com(0).HeightEnd IfvsbSlide.Value = 0

14、vsbSlide.Max = picSlide.Height - picFrame.ScaleHeightIf vsbSlide.Max 0 ThenvsbSlide.Max = 0vsbSlide.Enabled = FalseElsevsbSlide.Enabled = TruevsbSlide.SmallChange = Com(0).HeightvsbSlide.LargeChange = picFrame.ScaleHeightEnd IfEnd IfPr.Top = St.Top + 8Pr.Left = St.Panels(4).Left + 6Picture1.Move (pi

15、cFrame.Width - Picture1.Width) / 2, (picFrame.Height - Picture1.Height) / 2End Sub.Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)$AGESEP$file:/如果被全屏浏览的图片较大时file:/可以用鼠标拖动图片来浏览全貌 ReleaseCaptureSendMessage Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0End Sub.Private Sub vsbSlide_Change()/当缩略图较多时可以移动滑块进行浏览picSlide.Top = -vsbSlide.ValueEnd Sub(四)运行调试

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号