主题:vb 图片浏览器
目的与要求
1.目的
培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。
2.基本要求
设计一个简单的图片浏览器,通过DriveListBox 、DirListBox 和FileListBox 一组控件选择图片文件,在PictureBox中显示。
详细要求如下:
 能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。
 在FileListBox中只列出图片文件。
 使用HscrollBar控件对图片进行缩放。
 使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。
 可以轮流显示FileListBox中列出图片文件。
3.创新要求
在基本要求达到后,进行创新设计,创新方向提示如下:
★ 增加菜单,可以提供菜单控制。
★ 可以根据图片的长宽比改变PictrueBox的长宽比。
★ 可以改变窗口大小,窗口上的图片也要做相应的调整。
★ 当图片放大超过窗口大小后,可以提供鼠标移动图片显示。
★ 其它创新(有一定难度,实现代码在30行以上)。
三、设计方法和基本原理
1.问题描述
程序界面可以参考上面的图。通过单击DriveListBox 、DirListBox 和FileListBox 一组控件选择图片文件,在PictureBox中显示。通过水平滚动条对图片进行缩放,在状态条显示图片文件的部分属性。
2.问题的解决方案
①设计程序界面
参考上图。
②编写代码
包括事件处理过程和功能函数,还有必要的声明。
事件处理包括下面的主要事件:
Form_Load()
作一些初始化的工作。
Sub DriveX_Change()
改变DirX。
Sub DirX_Change()
改变FileX。
FileX_Click()
显示图片。
Sub HScrX_Change()
处理图片缩放。
PictureX _ MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
处理图片随鼠标移动。
四、主要技术问题的描述
本题中的难点在于图片的缩放、移动和图片信息的提取。需要同学熟练掌握PictureBox的属性、方法、事件和有关文件的一些函数。
1.图片的缩放
图片的缩放使用PictureBox的PaintPicture方法,
Pic1.PaintPicture Pic1.Picture, 0, 0, J, I, 0, 0, L, K
其中I=当前PictureBox的ScaleHeight;
J=当前PictureBox的ScaleWidth;
K=图片实际的ScaleHeight;
L=图片实际的ScaleWidth;
在使用时还要注意ScaleMode的设置。
2. 图片的移动
图片在PictureBox中的移动,也使用PictureBox的PaintPicture方法,通过修改 picture 内剪贴区的坐标(x-轴和y-轴)实现。
3. 图片信息提取
图片的尺寸可以使用PictureBox的ScaleHeight、ScaleWidth属性得到。更多的图片信息可以通过第三方控件获取。
1.目的
培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。
2.基本要求
设计一个简单的图片浏览器,通过DriveListBox 、DirListBox 和FileListBox 一组控件选择图片文件,在PictureBox中显示。
详细要求如下:
 能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。
 在FileListBox中只列出图片文件。
 使用HscrollBar控件对图片进行缩放。
 使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。
 可以轮流显示FileListBox中列出图片文件。
3.创新要求
在基本要求达到后,进行创新设计,创新方向提示如下:
★ 增加菜单,可以提供菜单控制。
★ 可以根据图片的长宽比改变PictrueBox的长宽比。
★ 可以改变窗口大小,窗口上的图片也要做相应的调整。
★ 当图片放大超过窗口大小后,可以提供鼠标移动图片显示。
★ 其它创新(有一定难度,实现代码在30行以上)。
三、设计方法和基本原理
1.问题描述
程序界面可以参考上面的图。通过单击DriveListBox 、DirListBox 和FileListBox 一组控件选择图片文件,在PictureBox中显示。通过水平滚动条对图片进行缩放,在状态条显示图片文件的部分属性。
2.问题的解决方案
①设计程序界面
参考上图。
②编写代码
包括事件处理过程和功能函数,还有必要的声明。
事件处理包括下面的主要事件:
Form_Load()
作一些初始化的工作。
Sub DriveX_Change()
改变DirX。
Sub DirX_Change()
改变FileX。
FileX_Click()
显示图片。
Sub HScrX_Change()
处理图片缩放。
PictureX _ MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
处理图片随鼠标移动。
四、主要技术问题的描述
本题中的难点在于图片的缩放、移动和图片信息的提取。需要同学熟练掌握PictureBox的属性、方法、事件和有关文件的一些函数。
1.图片的缩放
图片的缩放使用PictureBox的PaintPicture方法,
Pic1.PaintPicture Pic1.Picture, 0, 0, J, I, 0, 0, L, K
其中I=当前PictureBox的ScaleHeight;
J=当前PictureBox的ScaleWidth;
K=图片实际的ScaleHeight;
L=图片实际的ScaleWidth;
在使用时还要注意ScaleMode的设置。
2. 图片的移动
图片在PictureBox中的移动,也使用PictureBox的PaintPicture方法,通过修改 picture 内剪贴区的坐标(x-轴和y-轴)实现。
3. 图片信息提取
图片的尺寸可以使用PictureBox的ScaleHeight、ScaleWidth属性得到。更多的图片信息可以通过第三方控件获取。