当前位置:文档之家› 图片浏览器课程设计报告

图片浏览器课程设计报告

图片浏览器设计报告学院土木工程学院班级测绘C111 学号117544 姓名戴健健成绩一、设计思路1.要达到的目的①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。

②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。

③在FileListBox中只列出图片文件。

④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。

⑤使用HscrollBar控件对图片进行缩放。

⑤可以轮流显示FileListBox中列出图片文件。

⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。

2.关键问题的解决①使用Loadpicture方法在图片框里加载符合格式要求的图片。

②使用FileListBox方法来显示图片。

③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。

④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏览。

⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。

二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释Private Sub Form_Load()Drive1.Drive = App.PathDir1.Path = App.Path'App 是当前的应用程序对象File1.Pattern = "*.bmp;*.jpg;*.ico;*.wmf"'在FileListBox中只列出图片文件。

Picture1.AutoSize = TruePicture2.AutoSize = True'设定自动缩放,适应PictureBox的大小。

StatusBar1.Panels.AddStatusBar1.Panels.AddStatusBar1.Panels.AddStatusBar1.Panels.Item(1).MinWidth = 2000StatusBar1.Panels.Item(1).Alignment = sbrCenter StatusBar1.Panels.Item(2).MinWidth = 1800StatusBar1.Panels.Item(2).Alignment = sbrCenter StatusBar1.Panels.Item(3).MinWidth = 2400StatusBar1.Panels.Item(3).Alignment = sbrCenter StatusBar1.Panels.Item(4).MinWidth = 3000StatusBar1.Panels.Item(4).Alignment = sbrCenter '设定StatusBar的数量和属性End SubPrivate Sub Dir1_Change()File1.Path = Dir1.PathEnd subPrivate Sub HScroll1_Change()Picture1.ClsMax = 200Min = 1'设定滚动条的最大、最小值。

Value = 200smallchang = 1largechang = 1'设定Value值的改变量。

Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width * HScroll1.Value / 100, _Picture1.Height * HScroll1.Value / 100, 0, 0, _Picture2.Width, Picture2.Height'使用滚动条缩放图片End SubPrivate Sub Picture1_MouseDown(Button As Integer, _Shift As Integer, X As Single, Y As Single)X1 = XY1 = YEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) X2 = XY2 = YX3 = X3 + X2 - X1Y3 = Y3 + Y2 - Y1Picture1.Picture = LoadPicture(tempstring)Picture1.ClsIf HScroll1.Value <> 100 Then'使用鼠标移动图片Picture1.PaintPicture Picture2.Picture, X3, Y3, _Picture1.Width * HScroll1.Value / 100, _Picture1.Height * HScroll1.Value / 100'使用PaintPicture方法ElsePicture1.PaintPicture Picture2.Picture, X3, Y3, _Picture1.Width, Picture1.HeightEnd IfEnd SubPrivate Sub munfileopen_Click()'菜单栏"打开"CommonDialog1.ShowOpenPicture2.Picture = LoadPicture(CommonDialog1.FileName)Picture1.ClsPicture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width, Picture1.Height, 0, 0, _Picture2.Width, Picture2.HeightPicture2.Visible = FalseCommonDialog1.Filter = "pictures|(*.bmp)|*.bmp|pictures|(*.jpg)|*.jpg|pictures|(*.gif)|*.gif|pictures|(*.ico)|*.ico"'设定载入文件的格式munbigger.Enabled = Truemunsmaller.Enabled = Truemunback.Enabled = Truemysize = FileLen(CommonDialog1.FileName)Picture2.ScaleMode = 3StatusBar1.Panels(1) = "图片尺寸:" & _Picture2.ScaleWidth & "×" & Picture2.ScaleHeightStatusBar1.Panels(2) = "文件大小:" & _Int(mysize / 1024 * 10 + 0.5) / 10 & "KB"StatusBar1.Panels(3) = "修改日期:" & "2012-6-21 " & "14:00"End SubPrivate Sub munfileexit_Click()'菜单栏"关闭"Unload MeEnd SubPrivate Sub munbigger_Click()'菜单栏"放大"Picture1.ClsPicture2.Width = Picture2.Width * 0.8Picture2.Height = Picture2.Height * 0.8Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width, Picture1.Height, 0, 0, _Picture2.Width, Picture2.HeightEnd SubPrivate Sub munback_Click()'菜单栏"还原"Picture2.Picture = LoadPicture(Dir1.Path & "\" & File1.FileName)Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width, Picture1.Height, 0, 0, _Picture2.Width, Picture2.HeightPicture2.Visible = FalseEnd Sub四、设计方案的完善及目前存在的问题1.设计方案要完善的地方①增加根据图片的长宽比改变PictrueBox的长宽比。

②增加改变窗口大小,窗口上的图片也要做相应的调整。

③完善菜单栏的“打开”功能和鼠标拖动图片功能。

2. 目前存在的问题①菜单栏的“打开”功能不够完善。

②单击鼠标拖动图片功能不能令人满意。

③文件的信息显示不够全面。

五、本次设计的收获及心得体会①在打好基础的前提下,努力拓宽自己的知识面。

②增加练习的时间,把基础做扎实。

六、对该题目和VB设计的意见和建议1. 对该题目的意见和建议①增加对图片文件的简单的编辑功能。

如缩放、裁减、添加文本框等。

②在浏览功能方面,增加全屏浏览、旋转等功能。

2.对本次设计的意见和建议希望老师的提示能更多一些,多提供一些有用的控件和控件的详细使用方法。

相关主题