当前位置:文档之家› (vb课程设计)图片浏览器修改

(vb课程设计)图片浏览器修改

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

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

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

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

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

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

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

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

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

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

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

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

二、模块之间的调用关系,或程序流程图picture模块hscrollbar模块pictureload三、部分程序关键源代码及注释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的大小。

= 2000= sbrCenter= 1800= sbrCenter= 2400= sbrCenter= 3000= sbrCenter '设定StatusBar的数量和属性End SubPrivate Sub Drive1_Change()On Error Resume NextDir1.RefreshDir1.Path = Drive1.DriveIf Err.Number = 68 ThenErr.ClearMsgBox "先将光盘插入!", , "提示"Exit SubEnd If '设定错误提示End SubPrivate Sub Dir1_Change()File1.Path = Dir1.PathEnd SubPrivate Sub File1_Click()If Right(File1.Path, 1) <> "\" Thentempstring = File1.Path & "\" & File1.FileName '非根目录时,路径中的最后加上一个反斜杠"\"Elsetempstring = File1.Path & "\" & File1.FileNameEnd If '装入选定的文件。

Picture1.Enabled = TruePicture2.Picture = LoadPicture(tempstring)Picture1.PaintPicture Picture2.Picture _, 0, 0, Picture1.Width, Picture1.Height, _0, 0, Picture2.Width, Picture2.Height '设定图片的初始状态。

Picture2.Visible = Falsemysize = FileLen(Dir1.Path & "\" & File1.FileName)Picture2.ScaleMode = 3StatusBar1.Panels(1) = "图片尺寸:" & _Picture2.ScaleWidth & "×" & Picture2.ScaleHeightStatusBar1.Panels(2) = "文件大小:" & _Int(mysize / 1024 * 10 + 0.5) / 10 & "KB"StatusBar1.Panels(3) = "修改日期:" & "2008-6-11 " & "08:32"= "制作人:郭少华2008年6月" '设定图片信息的提取End SubPrivate Sub Command1_Click()If Command1.Caption = "自动浏览" ThenTimer1.Enabled = TrueCommand1.Caption = "手动浏览"ElseTimer1.Enabled = FalseCommand1.Caption = "自动浏览"End If '设定自动浏览End SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Timer1_Timer()X = File1.ListIndexX = X + 1If X < File1.ListCount ThenFile1.Selected(X) = TrueCall File1_ClickElseFile1.ListIndex = 0End If '设定timer事件来自动浏览图片End SubPrivate Sub Form_QueryUnload(Cancel As Integer, _UnloadMode As Integer)Title = MsgBox("确定要退出?", vbYesNoCancel, "提示")If Title <> 6 ThenCancel = TrueEnd IfIf Title = 6 ThenMsgBox "谢谢使用,欢迎再次使用。

", , "图片浏览器"End IfEnd 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) = "修改日期:" & "2008-06-11 " & "08:32"= "制作人:郭少华2008年6月" '设定图片信息的提取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 munsmaller_Click() '菜单栏"缩小"Picture1.ClsPicture2.Width = Picture2.Width * 1.5Picture2.Height = Picture2.Height * 1.5Picture1.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.设计方案要完善的地方①菜单栏的“打开”功能和鼠标拖动图片功能还应待完善。

相关主题