打印
[AVR单片机]

给VB控件PictureBox加滚动条的方法

[复制链接]
1761|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangwo|  楼主 | 2009-11-5 23:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用过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中,利用水平和垂直滚动条就可以实现图片的滚动。

相关帖子

沙发
god_like| | 2009-11-6 10:07 | 只看该作者
LZ辛苦了

使用特权

评论回复
板凳
lovelyegle| | 2009-11-7 22:43 | 只看该作者
:handshake,支持下!

使用特权

评论回复
地板
wangwo|  楼主 | 2009-11-9 12:46 | 只看该作者
这么好的帖子,也不多顶下:(

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

806

帖子

2

粉丝