⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccreaterectangle.vb

📁 苏金明编写的《用VB.NET和VC#.NET开发交互式CAD系统》一书的源代码
💻 VB
字号:
Public Class CCreateRectangle
    Implements ICommand

    Private m_Step As Integer
    Private m_basePos, m_desPos As PointF

    Public Sub LButtonDown(ByVal g As Graphics, ByVal aPos As PointF) Implements ICommand.LButtonDown
        Dim prePos As New PointF()
        '记录鼠标左键的单击次数
        m_Step += 1
        Select Case m_Step
            Case 1               '第1次单击鼠标左键
                m_basePos = aPos
                m_desPos = aPos
            Case 2
                '重绘并删除前一位置的橡皮矩形
                prePos = m_basePos
                Dim tempRect As New CRectangle(m_basePos, m_desPos)
                tempRect.Draw(g, CGElement.geDrawMode.Drag)
                tempRect = Nothing
                '绘当前位置的矩形
                m_basePos = prePos
                m_desPos = aPos
                Dim newRect As New CRectangle(m_basePos, m_desPos)
                newRect.Draw(g, CGElement.geDrawMode.Normal)

                ges.Add(newRect)

                m_Step = 0

        End Select
    End Sub

    Public Sub MouseMove(ByVal g As Graphics, ByVal aPos As PointF) Implements ICommand.MouseMove

        Select Case m_Step
            Case 1
                Dim prePos As New PointF()
                Dim curPos As New PointF()
                prePos = m_desPos
                curPos = aPos
                '清除前一位置的橡皮矩形
                Dim tempRect1 As New CRectangle(m_basePos, prePos)
                tempRect1.Draw(g, CGElement.geDrawMode.Drag)
                tempRect1 = Nothing

                '绘当前位置的橡皮矩形
                Dim tempRect2 As New CRectangle(m_basePos, curPos)
                m_desPos = curPos
                tempRect2.Draw(g, CGElement.geDrawMode.Drag)
                tempRect2 = Nothing

        End Select
    End Sub

    '单击鼠标右键时的绘图行为
    Public Sub RButtonDown(ByVal g As Graphics, ByVal aPos As PointF) Implements ICommand.RButtonDown
        If m_Step = 1 Then
            '清除先前绘制的橡皮矩形
            Dim tempRect As New CRectangle(m_basePos, m_desPos)
            tempRect.Draw(g, CGElement.geDrawMode.Drag)
            tempRect = Nothing
        End If
        m_Step = 0
    End Sub

End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -