我有一张大图,要原样放到一个较小的picturebox里,所以需要加上滚动条,好方便查看。有什么办法吗?
解决方案 »
- vb里要实现,用户管理,能根据角色权限分配,如果再能管理到字段的访问,请问怎么样设计?
- 请问这样获取目录行吗?
- vb app.path问题
- 給文件夾加密
- 请教一个关于数sql server据库连接的问题(在线急等)
- 菜鸟高分求解:怎样在picturebox中画一条平滑斜线;放大时怎样消除锯齿
- *****************执行程序的起始内存***************************
- vb实现访问服务器上有限制的目录并操作
- 用vb如何获得图片中各个像素点的颜色信息值
- Insert Into overtime ( Date) Values ( "02-5-24" ) 为什么出错
- 多人同时操作数据库时,如何确定数据库记录的唯一关键字?
- 数据报表中纸张页面的横向纵向怎么设置?
(2)使用一个第三方控件,来给picturebox增加滚动条,推荐这个方法。
(3)使用VB的水平滚动条、垂直滚动条控件,并且嵌套2个picturebox,里面的原始大小,外面的两侧放置滚动条,并且使用move方法移动,来模拟,优点是方便,缺点是不美观。(参考:http://www.freevbcode.com/ShowCode.asp?ID=4783)
1、取得图片的大小(宽*高)。
2、取得图片框的大小。
3、设置水平滚动条的最大值为图片的宽,垂直滚动条的最大值为图片的高。
3、点击滚动条来修改位置,相应的使用BitBlt来移动图片。
用小picturebox做大picturebox的容器,然后用滚动条移动大picturebox,就可实现你要的结果。
Private Sub Form_Load()
Picture1.Move 0, 0, 5000, 5000
Set Picture2.Container = Picture1
Picture2.Appearance = flat
Picture2.AutoSize = True
Picture2.Move 0, 0
Picture2.Picture = LoadPicture("c:\1.jpg")
VScroll1.Height = Picture1.Height
VScroll1.Move Picture1.Left + Picture1.Width, Picture1.Top, 260, Picture1.Height
HScroll1.Move Picture1.Left, Picture1.Top + Picture1.Height, Picture1.Width, 260
VScroll1.Min = 0: VScroll1.Max = Picture2.Height - Picture1.Height
VScroll1.LargeChange = 500: VScroll1.SmallChange = 100
HScroll1.Min = 0: HScroll1.Max = Picture2.Width - Picture1.Width
HScroll1.LargeChange = 500: HScroll1.SmallChange = 100
End SubPrivate Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value
End SubPrivate Sub HScroll1_Scroll()
Picture2.Left = -HScroll1.Value
End SubPrivate Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value
End SubPrivate Sub VScroll1_Scroll()
Picture2.Top = -VScroll1.Value
End Sub
Private Sub Form_Load()
Picture1.Move 0, 0, 5000, 5000
Set Picture2.Container = Picture1
Picture2.Appearance = flat
Picture2.AutoSize = True
Picture2.Move 0, 0
Picture2.Picture = LoadPicture("c:\1.jpg")
VScroll1.Move Picture1.Left + Picture1.Width, Picture1.Top, 260, Picture1.Height
HScroll1.Move Picture1.Left, Picture1.Top + Picture1.Height, Picture1.Width, 260
VScroll1.Min = 0: VScroll1.Max = Picture2.Height - Picture1.Height
VScroll1.LargeChange = 500: VScroll1.SmallChange = 100
HScroll1.Min = 0: HScroll1.Max = Picture2.Width - Picture1.Width
HScroll1.LargeChange = 500: HScroll1.SmallChange = 100
End SubPrivate Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value
End SubPrivate Sub HScroll1_Scroll()
Picture2.Left = -HScroll1.Value
End SubPrivate Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value
End SubPrivate Sub VScroll1_Scroll()
Picture2.Top = -VScroll1.Value
End Sub
http://www.freevbcode.com/ShowCode.asp?ID=4783