我放图片的PictureBox只有一小部分空间,所以有的图片部分
显示不出来,我想让它上面竖的和横的滚动条, 不知道怎么实现.
也没有找到资料.
显示不出来,我想让它上面竖的和横的滚动条, 不知道怎么实现.
也没有找到资料.
解决方案 »
- vb 至少一个参数没有被指定值,希望大家帮帮忙
- 请教用VB如何将ACCESS字段导入到EXCEL
- sql查询中文本连接用什么函数?
- 怎样实现一个能向主窗口返回值的弹出窗口
- 怎样取得RichTextBox中每个文字的坐标啊?急!!!
- 我回来了,顺便标记一下vb版块的专家分超过10万
- [简单问题]如何编写一个POP检测邮件程序?
- DataGrid控件中显示当前行号、大批量数据导入
- 关于optionbutton控件和数据库之间的问题
- 高分相赠!!!一个古老的经典问题,不够再加
- 如何读文本文件中的指定行?????????
- 请问Windows的一些程序,当鼠标经过或指向一个按钮或者特定的文字时,会出现一个很小的浅黄底的注释,如何实现的?
1、 使用两个PICTUREBOX,就象Random(随便)所说的那样2、放置两个控件在最外面的PICTUREBOX旁,他们是HScrollBar(水平滚动条) 和 VScrollBar(垂直滚动条)3、以下是一个示例代码,看看对你有没有帮助Private Sub VScroll1_Change()
Call Move_Picture
End SubPrivate Sub HScroll1_Change()
Call Move_Picture
End SubPrivate Sub Move_Picture()
On Error GoTo Move_Picture_Error
Dim x As StdPicture
Dim w As Long, h As Long
Set x = LoadPicture(App.Path + "\Desktop.jpg")
w = x.Width: h = x.Height
VScroll1.Max = h
VScroll1.LargeChange = VScroll1.Max / 50
VScroll1.SmallChange = VScroll1.Max / 100
HScroll1.Max = w
HScroll1.LargeChange = HScroll1.Max / 50
HScroll1.SmallChange = HScroll1.Max / 100
Me.Picture = Nothing
Me.AutoRedraw = True
Me.PaintPicture x, 0, 0, w, h, HScroll1.Value, VScroll1.Value, w, h, vbSrcCopy
Me.AutoRedraw = False
Move_Picture_Error:
End Sub
为什么两个图片框都没有显示图片,窗体上反而有呢?
Private Sub Form_Load()
'设置 ScaleMode 为像素。
Form1.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
'将 Autosize 设置为 True,以使 Picture2 的边界
'扩展到实际的位图大小。
Picture2.AutoSize = True
'将每个图片框的 BorderStyle 属性设置为 None。Picture1.BorderStyle = 0
Picture2.BorderStyle = 0'加载位图。
'初始化两个图片框的位置。
Picture1.Move 0, 0, ScaleWidth - VScroll1.Width,
_ScaleHeight - HScroll1.Height
Picture2.Move 0, 0'将水平滚动条定位。
HScroll1.Top = Picture1.Height
HScroll1.Left = 0
HScroll1.Width = Picture1.Width'将垂直滚动条定位。
VScroll1.Top = 0
VScroll1.Left = Picture1.Width
VScroll1.Height = Picture1.Height'设置滚动条的 Max 属性。
HScroll1.Max = Picture2.Width - Picture1.Width
VScroll1.Max = Picture2.Height - Picture1.Height
'判断子图片框是否将充满屏幕。
'若如此,则无需使用滚动条。
VScroll1.Visible = (Picture1.Height <
_Picture2.Picture =
_LoadPicture("c:\Windows\Winlogo.bmp")
Picture2.Height)HScroll1.Visible = (Picture1.Width <
_Picture2.Width)
End Sub
水平和垂直滚动条的 Change 事件用来在父图片框中上、下、左、右移动子图片框。请将下列代码添加到两个滚动条控件的 Change 事件中:
Private Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value
End Sub
将子图片框的 Left 和 Top 属性分别设置成水平和垂直滚动条数值的负值,这样,当上、下、左、右滚动时,图形可正确地移动。
运行时调整窗体大小
在上例中,窗体的初始大小限制图形的可视大小。在运行时当用户调整窗体大小时,为了调整图形视口应用程序的大小,可将下列代码添加到窗体的 Form_Resize 事件过程中:
Private Sub Form_Resize()
'调整窗体大小时,改变 Picture1的尺寸。
Picture1.Height = Form1.Height
Picture1.Width = Form1.Width'重新初始化图片和滚动条的位置。
Picture1.Move 0, 0, ScaleWidth - VScroll1.Width,
_ScaleHeight - HScroll1.Height
Picture2.Move 0, 0HScroll1.Top = Picture1.Height
HScroll1.Left = 0
HScroll1.Width = Picture1.Width
VScroll1.Top = 0
VScroll1.Left = Picture1.Width
VScroll1.Height = Picture1.Height
HScroll1.Max = Picture2.Width - Picture1.Width
VScroll1.Max = Picture2.Height - Picture1.Width'检查是否需要滚动条。VScroll1.Visible = (Picture1.Height <
_Picture2.Height)
HScroll1.Visible = (Picture1.Width <
_Picture2.Width)
End Sub
_Picture2.Picture =
_LoadPicture("c:\Windows\Winlogo.bmp")
Picture2.Height)HScroll1.Visible = (Picture1.Width <
_Picture2.Width)我把它改为VScroll1.Visible = (Picture1.Height < Picture2.Height)
Picture2.Picture = LoadPicture("E:\x_xd_066.jpg")
HScroll1.Visible = (Picture1.Width < Picture2.Width)没有达到效果,滚动条都出不来