.ScaleMode .ScaleWidth .ScaleHeight .Scale .Line Scale 方法示例 本示例使用 Move 方法设立一个自定义座标系统,使得一个条形图可以在窗体上画出。要检验此示例,可将本例代码粘贴到一个窗体的声明部分,然后按 F5 键并单击该窗体。Private Sub Form_Click () Dim I, OldFontSize ' 声明变量。 Width = 8640: Height = 5760 ' 按缇设置窗体大小。 Move 100,100 ' 移动窗体起点。 AutoRedraw = -1 ' 打开AutoRedraw。 OldFontSize = FontSize ' 保持旧的字体大小。 BackColor = QBColor(7) ' 将背景设置为灰色。 Scale (0, 110)-(130, 0) ' 设定自定义座标系统。 For I = 100 To 10 Step -10 Line (0, I)-(2, I) ' 每隔 10 个单位划尺寸标记。 CurrentY = CurrentY + 1.5 ' 移动光标位置。 Print I ' Print scale value on left. Line (ScaleWidth - 2, I)-(ScaleWidth, I) CurrentY = CurrentY + 1.5 ' 移动光标位置。 CurrentX = ScaleWidth - 9 Print I ' 将尺寸标记值打印在右边。 Next I ' 画条形图。 Line (10, 0)-(20, 45), RGB(0, 0, 255), BF ' 第一个蓝色条。 Line (20, 0)-(30, 55), RGB(255, 0, 0), BF ' 第一个红色条。 Line (40, 0)-(50, 40), RGB(0, 0, 255), BF Line (50, 0)-(60, 25), RGB(255, 0, 0), BF Line (70, 0)-(80, 35), RGB(0, 0, 255), BF Line (80, 0)-(90, 60), RGB(255, 0, 0), BF Line (100, 0)-(110, 75), RGB(0, 0, 255), BF Line (110, 0)-(120, 90), RGB(255, 0, 0), BF CurrentX = 18: CurrentY = 100 ' 移动光标位置。 FontSize = 14 ' 放大标题尺寸。 Print "Widget Quarterly Sales" ' 打印标题。 FontSize = OldFontSize ' 还原字体大小。 CurrentX = 27: CurrentY = 93 ' 移动光标位置。 Print "Planned Vs. Actual" ' 打印子标题。 Line (29, 86)-(34, 88), RGB(0, 0, 255), BF ' 打印图例。 Line (43, 86)-(49, 88), RGB(255, 0, 0), BF End Sub
Private Sub Form_Load() Form1.Height = Form1.Width Form1.AutoRedraw = True '自动重绘 Form1.DrawWidth = 1 '设定线宽 HScroll1.Max = 10 HScroll1.Min = 4 HScroll1.LargeChange = 1 End SubPrivate Sub HScroll1_Change() Dim a As Single Form1.Cls a = HScroll1.Value / 2 Form1.Scale (-a, -a)-(a, a) '自定义坐标系 Line (0, -a)-(0, a), vbRed '画Y轴 Line (-a, 0)-(a, 0), vbRed '画X轴 For I = -a To a '画Y轴刻度 Line (-0.1, I)-(0, I), vbRed If I <> 0 Then CurrentY = CurrentY - 0.2 '控制Y坐标 Else CurrentY = CurrentY + 0.2 End If CurrentX = -0.5 Print (-I) '输出Y刻度数值 Next For I = -a To a '画Y轴刻度 Line (I, 0.1)-(I, 0), vbRed If I <> 0 Then CurrentX = CurrentX - 0.2 '控制X坐标 Else CurrentX = CurrentX + 0.2 End If CurrentY = 0.5 Print (-I) '输出Y刻度数值 Next End Sub
修改了下: Private Sub Form_Load() Form1.Height = Form1.Width Form1.AutoRedraw = True '自动重绘 Form1.DrawWidth = 1 '设定线宽 HScroll1.Max = 10 HScroll1.Min = 4 HScroll1.LargeChange = 1End SubPrivate Sub HScroll1_Change() Dim a As Single Form1.Cls a = HScroll1.Value / 2 Form1.Scale (-a, -a)-(a, a) '自定义坐标系 Line (0, -a)-(0, a), vbRed '画Y轴 Line (-a, 0)-(a, 0), vbRed '画X轴 For I = -a To a '画Y轴刻度 Line (-0.1, I)-(0, I), vbRed If I <> 0 Then CurrentY = CurrentY - 0.2 '控制Y坐标 Else CurrentY = CurrentY + 0.2 End If CurrentX = -1 * (a / 12) Print (-I) '输出Y刻度数值 Next For I = -a To a '画Y轴刻度 Line (I, 0.1)-(I, 0), vbRed If I <> 0 Then CurrentX = CurrentX - 0.2 '控制X坐标 Else CurrentX = CurrentX + 0.2 End If CurrentY = a / 12 Print (I) '输出X刻度数值 Next End Sub
.ScaleWidth
.ScaleHeight
.Scale
.Line
Scale 方法示例
本示例使用 Move 方法设立一个自定义座标系统,使得一个条形图可以在窗体上画出。要检验此示例,可将本例代码粘贴到一个窗体的声明部分,然后按 F5 键并单击该窗体。Private Sub Form_Click ()
Dim I, OldFontSize ' 声明变量。
Width = 8640: Height = 5760 ' 按缇设置窗体大小。
Move 100,100 ' 移动窗体起点。
AutoRedraw = -1 ' 打开AutoRedraw。
OldFontSize = FontSize ' 保持旧的字体大小。
BackColor = QBColor(7) ' 将背景设置为灰色。
Scale (0, 110)-(130, 0) ' 设定自定义座标系统。
For I = 100 To 10 Step -10
Line (0, I)-(2, I) ' 每隔 10 个单位划尺寸标记。
CurrentY = CurrentY + 1.5 ' 移动光标位置。
Print I ' Print scale value on left.
Line (ScaleWidth - 2, I)-(ScaleWidth, I)
CurrentY = CurrentY + 1.5 ' 移动光标位置。
CurrentX = ScaleWidth - 9
Print I ' 将尺寸标记值打印在右边。
Next I
' 画条形图。
Line (10, 0)-(20, 45), RGB(0, 0, 255), BF ' 第一个蓝色条。
Line (20, 0)-(30, 55), RGB(255, 0, 0), BF ' 第一个红色条。
Line (40, 0)-(50, 40), RGB(0, 0, 255), BF
Line (50, 0)-(60, 25), RGB(255, 0, 0), BF
Line (70, 0)-(80, 35), RGB(0, 0, 255), BF
Line (80, 0)-(90, 60), RGB(255, 0, 0), BF
Line (100, 0)-(110, 75), RGB(0, 0, 255), BF
Line (110, 0)-(120, 90), RGB(255, 0, 0), BF
CurrentX = 18: CurrentY = 100 ' 移动光标位置。
FontSize = 14 ' 放大标题尺寸。
Print "Widget Quarterly Sales" ' 打印标题。
FontSize = OldFontSize ' 还原字体大小。
CurrentX = 27: CurrentY = 93 ' 移动光标位置。
Print "Planned Vs. Actual" ' 打印子标题。
Line (29, 86)-(34, 88), RGB(0, 0, 255), BF ' 打印图例。
Line (43, 86)-(49, 88), RGB(255, 0, 0), BF
End Sub
Form1.Height = Form1.Width
Form1.AutoRedraw = True '自动重绘
Form1.DrawWidth = 1 '设定线宽
HScroll1.Max = 10
HScroll1.Min = 4
HScroll1.LargeChange = 1
End SubPrivate Sub HScroll1_Change()
Dim a As Single
Form1.Cls
a = HScroll1.Value / 2
Form1.Scale (-a, -a)-(a, a) '自定义坐标系
Line (0, -a)-(0, a), vbRed '画Y轴
Line (-a, 0)-(a, 0), vbRed '画X轴
For I = -a To a '画Y轴刻度
Line (-0.1, I)-(0, I), vbRed
If I <> 0 Then
CurrentY = CurrentY - 0.2 '控制Y坐标
Else
CurrentY = CurrentY + 0.2
End If
CurrentX = -0.5
Print (-I) '输出Y刻度数值
Next
For I = -a To a '画Y轴刻度
Line (I, 0.1)-(I, 0), vbRed
If I <> 0 Then
CurrentX = CurrentX - 0.2 '控制X坐标
Else
CurrentX = CurrentX + 0.2
End If
CurrentY = 0.5
Print (-I) '输出Y刻度数值
Next
End Sub
Private Sub Form_Load()
Form1.Height = Form1.Width
Form1.AutoRedraw = True '自动重绘
Form1.DrawWidth = 1 '设定线宽
HScroll1.Max = 10
HScroll1.Min = 4
HScroll1.LargeChange = 1End SubPrivate Sub HScroll1_Change()
Dim a As Single
Form1.Cls
a = HScroll1.Value / 2
Form1.Scale (-a, -a)-(a, a) '自定义坐标系
Line (0, -a)-(0, a), vbRed '画Y轴
Line (-a, 0)-(a, 0), vbRed '画X轴
For I = -a To a '画Y轴刻度
Line (-0.1, I)-(0, I), vbRed
If I <> 0 Then
CurrentY = CurrentY - 0.2 '控制Y坐标
Else
CurrentY = CurrentY + 0.2
End If
CurrentX = -1 * (a / 12)
Print (-I) '输出Y刻度数值
Next
For I = -a To a '画Y轴刻度
Line (I, 0.1)-(I, 0), vbRed
If I <> 0 Then
CurrentX = CurrentX - 0.2 '控制X坐标
Else
CurrentX = CurrentX + 0.2
End If
CurrentY = a / 12
Print (I) '输出X刻度数值
Next
End Sub