📄 frmain.frm
字号:
VERSION 5.00
Begin VB.Form frmain
AutoRedraw = -1 'True
Caption = "仪表盘"
ClientHeight = 4845
ClientLeft = 60
ClientTop = 450
ClientWidth = 5655
LinkTopic = "Form1"
ScaleHeight = 4845
ScaleWidth = 5655
StartUpPosition = 3 '窗口缺省
Begin VB.PictureBox biaoke
DragIcon = "frmain.frx":0000
Height = 3390
Left = 255
ScaleHeight = 58.738
ScaleMode = 6 'Millimeter
ScaleWidth = 88.371
TabIndex = 1
Top = 285
Width = 5070
Begin VB.PictureBox biaopan
AutoRedraw = -1 'True
BackColor = &H00FFFFFF&
DrawWidth = 2
FillColor = &H000000C0&
Height = 2175
Left = 735
Picture = "frmain.frx":0152
ScaleHeight = 37.306
ScaleMode = 6 'Millimeter
ScaleWidth = 60.59
TabIndex = 3
Top = 420
Width = 3495
Begin VB.Line biaozhen
BorderColor = &H000000FF&
Index = 4
X1 = 4.233
X2 = 52.917
Y1 = 35.983
Y2 = 35.983
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 240
Index = 6
Left = 0
TabIndex = 10
Top = 0
Width = 135
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 135
Index = 5
Left = 0
TabIndex = 9
Top = 0
Width = 135
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 135
Index = 4
Left = 0
TabIndex = 8
Top = 0
Width = 135
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 135
Index = 3
Left = 0
TabIndex = 7
Top = 0
Width = 135
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 135
Index = 2
Left = 0
TabIndex = 6
Top = 0
Width = 135
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 135
Index = 1
Left = 0
TabIndex = 5
Top = 0
Width = 135
End
Begin VB.Label keduzhi
BackColor = &H80000009&
Caption = "。"
Height = 135
Index = 0
Left = 0
TabIndex = 4
Top = 0
Width = 135
End
Begin VB.Line biaozhen
BorderColor = &H000000FF&
Index = 0
X1 = 6.35
X2 = 42.333
Y1 = 33.867
Y2 = 35.983
End
Begin VB.Line biaozhen
BorderColor = &H000000FF&
Index = 1
X1 = 10.583
X2 = 35.983
Y1 = 35.983
Y2 = 35.983
End
Begin VB.Line biaozhen
BorderColor = &H000000FF&
Index = 2
X1 = 4.233
X2 = 57.15
Y1 = 35.983
Y2 = 38.1
End
Begin VB.Line biaozhen
BorderColor = &H000000FF&
Index = 3
X1 = 6.35
X2 = 55.033
Y1 = 35.983
Y2 = 35.983
End
End
Begin VB.TextBox celiangzhi
Height = 390
Left = 2100
TabIndex = 2
Top = 2730
Width = 735
End
End
Begin VB.CommandButton Command2
Caption = "关闭"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 735
Left = 2370
TabIndex = 0
Top = 3840
Width = 1095
End
End
Attribute VB_Name = "frmain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public Zhizhen As Single '指针长度值
Public PI As Single, ZH As Single '设定两个长量
Public Keduchang As Single '设定刻度线长度
Public Zuidazhi As Single, Zuixiaozhi As Single '定义测量范围
Public Zhukedushu As Integer, Fenkedushu As Integer, Zhukedushu1 As Integer '主、分刻度数变量
Public Dongtaishu As Single '测量值变量
Public Jibencanshu As Single '基本参数,也就是表壳的宽度
Public JIESHOUZHI As Single '从外界接收的数值????
Sub shezhibiaopan()
biaopan.Cls
biaokekuan = Zhizhen * 4 '参数按比例赋值
biaokegao = Zhizhen * 2.6
biaopankuan = Zhizhen * 3.2
biaopangao = Zhizhen * 1.8
biaopan.Left = Zhizhen * 0.4 '初始化表盘位置
biaopan.Top = Zhizhen * 0.2
biaopan.Width = biaopankuan
biaopan.Height = biaopangao
biaoke.Width = biaokekuan * ZH
biaoke.Height = biaokegao * ZH
celiangzhi.Width = Zhizhen * 0.6 '设置读数框的大小和位置
celiangzhi.Height = Zhizhen * 0.2
celiangzhi.Left = (biaoke.ScaleWidth - celiangzhi.Width) / 2
celiangzhi.Top = Zhizhen * 21 / 10
biaopan.Scale (-Zhizhen * 1.6, Zhizhen * 1.5)-(Zhizhen * 1.6, -Zhizhen * 0.3) '选表盘中心为坐标原点,建立坐标系
biaopan.Circle (0, 0), Zhizhen, , 0, PI '画表盘半周
For i = 0 To Zhukedushu * Fenkedushu '画刻度线
If i Mod Fenkedushu = 0 Then
Keduchang = Zhizhen * 0.15
Else
Keduchang = Zhizhen * 0.1
End If
biaopan.Line (Zhizhen * Cos(PI * i / Zhukedushu / Fenkedushu), Zhizhen * Sin(PI * i / Zhukedushu / Fenkedushu))-((Zhizhen + Keduchang) * Cos(PI * i / Zhukedushu / Fenkedushu), (Zhizhen + Keduchang) * Sin(PI * i / Zhukedushu / Fenkedushu))
Next i
For Index = 0 To 4 '初始化表针
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = -(Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
biaozhen(Index).BorderWidth = Index + 1
Next Index
If Zhukedushu <> Zhukedushu1 Then '设定主刻度值的个数
If Zhukedushu > KEdushulinshi Then
For m = Zhukedushu1 + 1 To Zhukedushu
Load keduzhi(m)
Next m
Else
For n = Zhukedushu + 1 To Zhukedushu1
keduzhi(n).Visible = False
Next n
End If
End If
If Zhukedushu > 6 Then Zhukedushu1 = Zhukedushu
If Zhukedushu > KEdushulinshi Then KEdushulinshi = Zhukedushu
For j = 0 To Zhukedushu '设定刻度值的位置坐标,数值大小
Dim ls As Single
keduzhi(j).Visible = True
If Fix((Zuidazhi - Zuixiaozhi) * j / Zhukedushu) <> (Zuidazhi - Zuixiaozhi) * j / Zhukedushu Then
keduzhi(j).Caption = Format$((Zuidazhi - Zuixiaozhi) * j / Zhukedushu + Zuixiaozhi, "###.##")
Else
keduzhi(j).Caption = (Zuidazhi - Zuixiaozhi) * j / Zhukedushu + Zuixiaozhi
End If
keduzhi(j).AutoSize = True
keduzhi(j).BackStyle = 0
ls = (Sqr(keduzhi(j).Width * keduzhi(j).Width + keduzhi(j).Height * keduzhi(j).Height)) / 2 + Zhizhen * 0.1
keduzhi(j).Left = (Zhizhen + ls) * Cos(PI * (Zhukedushu - j) / Zhukedushu) - keduzhi(j).Width / 2
keduzhi(j).Top = (Zhizhen + ls) * Sin(PI * (Zhukedushu - j) / Zhukedushu) + keduzhi(j).Height / 2
Next j
End Sub
Sub biaozhenxuanzhuan(ls As Single) '设置表针走动
If Dongtaishu <= Zuidazhi And Dongtaishu >= Zuixiaozhi Then '设置表针
For Index = 0 To 4
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = (Zhizhen + 1) * Cos(ls) * ((5 - Index) / 5)
biaozhen(Index).Y2 = (Zhizhen + 1) * Sin(ls) * ((5 - Index) / 5)
Next Index
ElseIf Dongtaishu < Zuixiaozhi Then
For Index = 0 To 4 '表针置初位
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = -(Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
Next Index
ElseIf Dongtaishu > Zuidazhi Then
For Index = 0 To 4 '表针置于最大位置
biaozhen(Index).X1 = 0
biaozhen(Index).Y1 = 0
biaozhen(Index).X2 = (Zhizhen + 1) * ((5 - Index) / 5)
biaozhen(Index).Y2 = 0
Next Index
End If
End Sub
Private Sub Form_Load() '初始化
PI = 3.15159 '定义常量PI值和缇与毫米的转换值
ZH = 1440 / 25.4
biaopan.Picture = LoadPicture()
ShuBiao = 0 '参数赋初值
Zhizhen = biaoke.ScaleWidth / 4
Kaiguanxiandian = True
Zuidazhi = 18
Zuixiaozhi = 0
Dongtaishu = 0
Zhukedushu = 6
Zhukedushu1 = 6
Fenkedushu = 6
KEdushulinshi = 6
shezhibiaopan '初始化表盘
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub celiangzhi_Change() '测量量改变时仪表改变
Dim ls As Single
Dongtaishu = Val(celiangzhi.Text)
ls = PI - (Dongtaishu - Zuixiaozhi) * PI / (Zuidazhi - Zuixiaozhi)
biaozhenxuanzhuan ls '调用指针改变函数
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -