7,763
社区成员
发帖
与我相关
我的任务
分享
Option Explicit
Const DataDisplayCount = 100 '看你想要显示多少个数据
Dim data As New Collection
Private Sub Form_Load()
Dim i As Integer
'数据初始化
For i = 1 To DataDisplayCount
data.Add 0
Next
'开启timer模拟数据输入
Timer1.Interval = 100
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
'模拟数据获取到的时候的处理
Dim i As Integer
Dim X As Long, Y As Long
Dim lastX As Long, lastY As Long
data.Add Rnd '模拟随机获取到一个数值,这里产生一个0~1的数,用来标书数据点Y坐标占picture高度的百分比
data.Remove 1 '把超过显示数量的数据删除
'准备重绘的坐标起始点,原点在Picture的左下角。横坐标为时间,显示DataDisplayCount个数据,纵坐标为第一个点数据的Y坐标。Y坐标的算法自己去定义,我这怎么简单怎么来
lastX = 0
lastY = Picture1.ScaleHeight - Picture1.ScaleHeight * data(1)
Picture1.Cls '绘图区域清空
For i = 2 To data.Count
X = X + Picture1.ScaleWidth / (DataDisplayCount - 1)
Y = Picture1.ScaleHeight - Picture1.ScaleHeight * data(i)
Picture1.Line (lastX, lastY)-(X, Y)
lastX = X
lastY = Y
Next
End Sub
简单自绘一段。给你一个样例:一个窗体,扔一个picturebox(初始化为扁长一点)一个timer。然后黏贴上面的代码试试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
Private Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value
End Sub
Private Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value
End Sub
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