ctext.vb
来自「苏金明编写的《用VB.NET和VC#.NET开发交互式CAD系统》一书的源代码」· VB 代码 · 共 150 行
VB
150 行
'文本类
Imports System.Drawing.Drawing2D
Public Class CText
Inherits CGElement
Private m_Font As Font
Private m_Pos As PointF
Private m_Content As String
Private m_Size, m_Angle As Single
Private m_Color As Color
Private m_Style As FontStyle
'字体属性
Public Property Font() As Font
Get
Return m_Font
End Get
Set(ByVal Value As Font)
m_Font = Value
End Set
End Property
'位置属性
Public Property Pos() As PointF
Get
Return m_Pos
End Get
Set(ByVal Value As PointF)
m_Pos = Value
End Set
End Property
'大小属性
Public Property Size() As Single
Get
Return m_Size
End Get
Set(ByVal Value As Single)
m_Size = Value
End Set
End Property
'内容属性
Public Property Content() As String
Get
Return m_Content
End Get
Set(ByVal Value As String)
m_Content = Value
End Set
End Property
'旋转角度属性
Public Property Angle() As Single
Get
Return m_Angle
End Get
Set(ByVal Value As Single)
m_Angle = Value
End Set
End Property
'颜色属性
Public Shadows Property Color() As Color
Get
Return m_Color
End Get
Set(ByVal Value As Color)
m_Color = Value
End Set
End Property
'字体模式
Public Shadows Property Style() As FontStyle
Get
Return m_Style
End Get
Set(ByVal Value As FontStyle)
m_Style = Value
End Set
End Property
'无参构造函数
Public Sub New()
Init()
End Sub
'构造函数,用已知的字符串进行构造
Public Sub New(ByVal str As String, ByVal aPos As PointF)
Init()
m_Content = str
m_Pos = aPos
End Sub
'构造函数
Public Sub New(ByVal str As String, ByVal f As Font, _
ByVal size As Single, _
ByVal aPos As PointF, ByVal ang As Single, _
ByVal c As Color, ByVal sty As FontStyle)
m_Content = str
m_Font = f
m_Size = size
m_Pos = aPos
m_Angle = ang
m_Color = c
m_Style = sty
End Sub
'构造函数,用已知的文本进行构造
Public Sub New(ByVal text As CText)
With text
m_Content = .Content
m_Font = .Font
m_Pos = .Pos
m_Size = .Size
m_Angle = .Angle
m_Color = .Color
m_Style = .Style
End With
End Sub
'初始化文本
Private Shadows Sub Init()
m_Content = " "
m_Size = 20
m_Font = New Font("宋体", m_Size, m_Style, GraphicsUnit.Pixel)
m_Pos = New PointF(0, 0)
m_Angle = 0
m_Color = Color.Black
m_Style = FontStyle.Regular
End Sub
'绘文本
Public Overrides Sub Draw(ByVal g As Graphics, ByVal aDrawMode As geDrawMode)
Select Case aDrawMode
Case CGElement.geDrawMode.Normal
m_Color = Color.Black
Case CGElement.geDrawMode.Selec
m_Color = Color.Red
Case CGElement.geDrawMode.Delete
m_Color = Color.White
End Select
Dim Pos As PointF = WorldtoPage(m_Pos)
Dim sf As New StringFormat(StringFormatFlags.NoWrap)
g.DrawString(m_Content, m_Font, New SolidBrush(m_Color), Pos.X, Pos.Y, sf)
End Sub
End Class
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?