如何给vb控件picturebox加滚动条?
如何给vb控件picturebox加滚动条?
如何给vb控件picturebox加滚动条?
答案:用过picturebox控件的朋友都知道,在其中我们可以加载图片。当图片不是很大时,可能还不会有什么问题,但是,如果所加载的图片比picturebox大时,我们只能看到图片的一部分,那么,怎么才能看到其他的部分呢?为了解决上述问题,我们可以在图片框(picturebox)内部加上水平和垂直滚动条,利用滚动条来显示看不到的图片。具体方法如下:
首先给工程(project)添加一个ocx控件,单击选单上的工程(project)选单项,在弹出的下拉选单中点击组件(components),选中其中的“microsoft common dialog control 5.0”,确定完成加载工作;然后画一个picturebox,采用vb提供的默认名字picture1, 再在picture1上面画一个picturebox,默认名字为picture2,注意别忘了设置:picture2.autosize=true;接着,加上水平和垂直滚动条,默认名字分别为:hscroll1,vscroll1;以后加载图形到picture2上,就可以了;最后,在窗体中引入其它控件:一个按钮(command),默认名为command1和一个“microsoft common dialog control”,默认名为commondialog1。具体vb代码如下:
private sub form—load()
picture2.left = 0
picture2.top = 0
picture2.width = picture1.width
picture2.height = picture1.height
vscroll1.min = 0
hscroll1.min = 0
hscroll1.min = 0
vscroll1.max = picture2.height - picture1.height
hscroll1.max = picture2.width - picture1.width
if hscroll1.max 〈 0 then hscroll1.enabled = false
if vscroll1.max 〈 0 then vscroll1.enabled = false
end sub
private sub command—click()
on error goto errexit
commondialog1.filter = "bitmap file(*.bmp)|*.bmp|all file(*.*)|*.*"
commondialog1.filterindex = 1
commondialog1.showopen
picture2.picture = loadpicture(commondialog1.filename)
vscroll1.min = 0
hscroll1.min = 0
vscroll1.max = picture2.height - picture1.height
hscroll1.max = picture2.width - picture1.width
if hscroll1.max 〈 0 then hscroll1.enabled = false
if vscroll1.max 〈 0 then vscroll1.enabled = false
errexit:
end sub
private sub hscroll1—change()
picture2.left = -hscroll1.value
end sub
private sub vscroll1—change()
picture2.top = -vscroll1.value
end sub
该程序通过点击command1按钮,在弹出的对话框中选择一个图形文件加载到picture2中,利用水平和垂直滚动条就可以实现图片的滚动。
上一个:VB与BCB那一个程序更实用一些。
下一个:VB怎么处理鼠标滚轮的消息呢?