资源描述:
《用vb6设计缩略图功能的图片浏览器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、用vb6设计缩略图功能的图片浏览器(一)编程思路; 性能良好的图片浏览器首先要能够支持广泛的图片文件格式,这一点VB6基本控件picture已经为我们做好了。我们所要考虑的是如何将一幅图片极其清晰的按照设定大小显示到“容器”中——“容器”可以是多种多样的,而且要充分利用动态创建和卸载控件技术,以便适应不同目录所含有的不同个数的图片,当然正确、有序排列缩略图片也是非常关键的。 我在这里向大家展示利用动态创建COMMAND(按钮)控件作为载体的实现方法,它不仅可以以缩略图方式进行图片预览和全屏图片浏
2、览,而且可以自动随窗体的变化进行相应的伸展——注意本文关于界面容器、缩略图载体容器和缩略图载体的概念。(二)界面设计; (1)添加四个command控件command(1——8)Style=1’Graphical,caption属性分别是“选择”、“浏览”、“预览”(缩略图察看)、“上一张”、“下一张”、“向下”、“向上”、“退出”——这些按钮用来进行系统相关操作,它们是可以添加图片的; (2)添加一个filelist控件filhidden,设置其Pattern="*.bmp;*.dib;*.r
3、le;*.gif;*.jpg;*.wmf;*.emf;*.ico;*.cur",visible=fales——该文件列表控件用来读取选中目录下的所有图片文件名称,程序运行时是不可见的; (3)添加picture控件picFrame作为界面容器;在其上面添加四个picture控件picSlide作为缩略图载体容器,picload设置autosize=true作为缓冲图片要以原格式装载图片,picThumb用来装载缩略后的图片;一个VScrollBarL控件vsbSlide——用来进行图片调整,以便在
4、缩略图较多时能够进行相应的调整,picture1用来全屏显示图片;设置上述所有图片控件ScaleMode=3’Pixel;它们用来进行界面调整和缩略图片的生成; (4)在缩略图载体容器picslide上面添加命令按钮command控件数组原型com(0),设置其Style=1’Graphical、Visible=0;——用来作为缩略图片的载体; (5)添加一个StatusBar控件St——用来显示有关的信息; (6)单击"工程"菜单项目,选择"部件",在部件对话框的"控件"栏目中选择"MICR
5、OSOFTWINDOWSCOMMONCONTROLS6.0",确认在它前面的复选框中有一个黑色的对号,单击"确认",添加对该控件的引用。添加一个progressbar控件pb——用来显示缩略图的集成进度; (7)添加定时器timer1——用来实行图片的幻灯浏览;按层次调整上述控件到适当位置(如图片1所示);(三)程序源代码;OptionExplicitDimApathAsString,PiAsInteger,bZAsInteger.......PrivateDeclareFunctionStret
6、chBltLib"GDI32"(ByValhdcAsLong,ByValXAsLong,ByValYAsLong,ByValnWidthAsLong,ByValnHeightAsLong,ByValhSrcDCAsLong,ByValXSrcAsLong,ByValYSrcAsLong,ByValnSrcWidthAsLong,ByValnSrcHeightAsLong,ByValdwRopAsLong)AsLong//本函数用来对图片进行缩放处理,生成缩略图片.......PrivateSubCr
7、eateThumbs()//本函数用来创造缩略图片,并且将它们放到足够的file://缩略图载体com(i)中DimlIdxAsLongDimlFilCntAsLongDimsTextAsString,iAsIntegerScreen.MousePointer=vbHourglass//设置鼠标指针为漏斗类型picSlide.Move0,0,Com(0).Width,Com(0).HeightpicSlide.Visible=True//初始化缩略图容器载体Pr.Visible=TruePr.Val
8、ue=0Pr.Max=filHidden.ListCountPr.Min=0//启动进度条Com(0).Picture=LoadPictureCom(0).Visible=FalseIfCom.Count>1ThenFori=1ToCom.Count-1UnloadCom(i)NextEndIf$$$AGESEP$$$//初始化缩略图载体comOnErrorResumeNextfile://忽略错误file://lFilCnt=filHidden.ListCountF