VB6 FORM窗体上控件实现滚动的方法
来源:互联网 发布:软件怎么加注册码 编辑:程序博客网 时间:2024/06/16 15:43
你将所有的控件都放在窗体的 picturebox控件上
除了 PictureBox 控件之外,也可用水平、垂直滚动条创建可滚动的图形视口应用程序。当所包含的图形超过控件范围时,单独一个 PictureBox 控件无法实现滚动功能─ 因为 PictureBox 控件不能自动添加滚动条。
应用程序使用两个图片框。称第一个为平稳的父 PictureBox 控件。称第二个为子 PictureBox 控件,它包含在父图片框中。子图片框中包含图形图象,可用滚动条控件在父图片框中移动子图片框。
图 7.25 在设计时添加滚动条控件
如图 7.28 所示,先创建一个新工程,然后在窗体上绘制两个图片框、一个水平滚动条和一个垂直滚动条。
这里,用窗体的 Form_Load 事件设置比例模型,在父图片框中调整子图片框的大小,水平、垂直滚动条将定位并调整它们的大小,然后加载位图图形。将下列代码添加到窗体的 Form_Load 事件过程中:
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
'加载位图。
Picture2.Picture = _
LoadPicture("c:\Windows\Winlogo.bmp")
'初始化两个图片框的位置。
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.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 属性分别设置成水平和垂直滚动条数值的负值,这样,当上、下、左、右滚动时,图形可正确地移动。
运行时,显示的图形如图 7.26 所示。
图 7.26 运行时滚动位图
运行时调整窗体大小
在上例中,窗体的初始大小限制图形的可视大小。在运行时当用户调整窗体大小时,为了调整图形视口应用程序的大小,可将下列代码添加到窗体的 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, 0
HScroll1.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
- VB6 FORM窗体上控件实现滚动的方法
- c#遍历form窗体上的所有控件
- 窗体透明,窗体上控件不透明的设置方法
- VB6 Webbrowser控件中新窗体对应的拦截
- 窗体控件的方法
- 6-1 排列窗体上的控件(Laying Out Widgets on a Form)
- 写Form设计器尝试(四) 修改窗体上的控件属性
- 写Form设计器尝试(四) 修改窗体上的控件属性
- 点击webbrowser控件上此网页的某链接时,弹出一个新form窗体
- 跨越线程调用窗体上控件的方法
- 通过脚本在窗体上加载ocx控件的方法
- paip.gui控件form窗体的原理实现以及easyui的新建以及编辑实现
- WinForm实现窗体上控件的自由拖动
- c# WinForm实现窗体上控件的自由拖动
- WinForm实现窗体上控件的自由拖动
- 【VB6】实现VB6中类的静态方法
- 【VB6】实现VB6中类的静态方法
- 控件的滚动实现
- Java 并发编程之性能和可伸缩性
- 显示窗口的水平和垂直滚动条
- BZOJ 1008 - HNOI 2008 越狱 乘法原理 快速幂
- 注册表操作(VC_Win32)
- Android ListView完全解析
- VB6 FORM窗体上控件实现滚动的方法
- 栈的实例[仅为自己验证某些理论,请绕道,hoho]
- HTML学习笔记(2)---文字标签
- segfault error number 信息
- 谈谈MVC模式
- Android与JavaScript方法相互调用
- iOS CALayer讲解
- 程序员面试100题之七:最长公共子字符串
- Extjs Tips合集(持续更新)