创建可滚动的图形视口
来源:互联网 发布:win批量卸载软件 编辑:程序博客网 时间:2024/05/15 02:10
Scroll Bar 控件方案:创建可滚动的图形视口
除了 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.ValueEnd SubPrivate Sub VScroll1_Change() Picture2.Top = -VScroll1.ValueEnd 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
- 创建可滚动的图形视口
- Scroll Bar 控件方案:创建可滚动的图形视口
- 创建可拖拉的图形及连接图形的线条
- 创建可滚动的ResultSet对象
- 用JSP创建可重用的图形背景
- 用JSP创建可重用的图形背景
- 可滚动的ResultSet
- 可滚动的TextView
- 可滚动的 tbody
- 可滚动的 tbody
- 可滚动的 tbody
- 滚动条-可滚动文字的窗口
- Android shape drawable XML 可绘制图形的创建与使用
- Android shape drawable XML 可绘制图形的创建与使用
- 可滚动边框的文本框
- 可控制的连续滚动
- 可滚动的结果集
- 可滚动的结果集
- 浅谈项目感觉
- Top 10 Eclipse Hotkeys
- J2EE的概念
- 系统分析员、系统架构师、项目经理的区别
- Scroll Bar 控件方案:创建可滚动的图形视口
- 创建可滚动的图形视口
- 毕业一年以后的感触
- 照明的学问-最近几天的体会
- 关于单元测试的学习及其工具
- icai项目开发日记(-)
- 两个程序员的对话
- 好用的rdesktop,在linux下远程登陆windows系统。
- 曾经的同事们
- 加班之夜