资源描述:
《在VB中制作可滚动的图像显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在VB中制作可滚动的图像显示 摘要:我们在制作多媒体程序时,不可避免的要涉及图像的显示,尽管VB中提 供的picturebox可以显示多种格式的图像文件,但由于没有提供滚动条和缩放功 能,在使用中多有不便。笔者在编制一多媒体程序时,就需要对图像进行缩放显 示。这通常有两种处理办法,一是利用第三方控件,如Windows自带的WANG图像控 件;二是利用VB的picturebox和滚动条控件自行编程实现。本文给出了利用这两 种方法制作的实例。 在VB中制作可滚动的图像显示 我们在制作多媒体程序时,不可避免的要涉及图像的显示,尽管VB中提供的 pictu
2、rebox可以显示多种格式的图像文件,但由于没有提供滚动条和缩放功能,在 使用中多有不便。笔者在编制一多媒体程序时,就需要对图像进行缩放显示。这通 常有两种处理办法,一是利用第三方控件,如Windows自带的WANG图像控件;二是 利用VB的picturebox和滚动条控件自行编程实现。两种方法各有优缺点,可以根 据需要具体选用。 一,利用第三方控件实现 在“工程”中选取“部件”,将WANG 图像编辑控制添加到工具箱中,并在窗 体中绘制出合适大小,按鼠标右键,选取特性,设置好各种参数后加入程序代码就 行了,使用非常简单,如果需要,在程序中也可加入一定的图像
3、编辑功能。 采用第三方控件,功能较强,程序编制也简单一些,不失为一种好方法。但存 在一些其他问题,比如本文采用的WANG 图像编辑控制,在使用中就经常出现“类 没有注册”的错误,解决此问题,要么修改注册表,要么重装系统,很麻烦,所以 在要求的功能不是很多的情况下,用第二种方法比较合适。以下就是使用WANG控 件的程序,可以看出,代码很简单。 Private Sub imgedit1_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode '定义功能键,+,-用以缩放图像 Case
4、vbKeyAdd ImgEdit1.Zoom=imgedit1.zoom*1.2 Case vbKeySubtract ImgEdit1.Zoom=imgedit1.zoom/1.2 End Select ImgEdit1.Refresh End Sub Private Sub Form_Resize() ImgEdit1.Top = 0 ImgEdit1.Left = 0 ImgEdit1.Height = Form1.ScaleHeight ImgEdit1.Width = Form1.ScaleWidth End Sub Priva
5、te Sub Form_Load() imgedit1.image="a:ddd.jpg" ImgEdit1.ImagePalette = 3 ImgEdit1.Display End Sub 二是利用VB的picturebox和滚动条控件编程实现 PICTUREBOX控件能支持许多种图像格式,但没有缩放功能并且不自动添加滚 动条,所以必须自行编程实现。 应用程序使用两个图片框,一个作为包容器,可称之为父图片框,另一个作 为子图片框显示图形,配合滚动条控件在父图片框内移动子图片框就可实现画面 的滚动。 VB中提供了paintpicture方法,可
6、以在窗体、图片框上的任何地方绘制图 形,语法为 object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode,其中x1,y1为指定在 object 上绘制 picture 的目标坐标;width1,height1 指定 picture 的目标宽度和高度;x2,y2指定 picture 内剪贴区的坐标 width2,height2 指定 picture 内剪贴区的源宽度和高 度,当我们重新设定width1,height1时,就可以在子图片框内实现平滑
7、的缩放图 片。虽然Paintpicture可以代替bitblt windows API函数,但没有API的执行 速度快,如程序对速度的要求比较高,可用API函数代替paintpicture方法 。 在窗体中先画出picture1作为父图片框,然后在其中中画出picture2,在窗 体中再画出滚动条,picture2的autosize属性为TRUE,borderstyle属性为0, autoredraw属性为true,滚动条的largechange和smallchange属性设为合适大 小,窗体既设置完毕。 以下为