返回介绍

添加画线功能

发布于 2023-08-09 23:10:34 字数 1967 浏览 0 评论 0 收藏 0

增加交互绘直线功能。

在对话框上增加一个“ 绘制直线 ”按钮,并为它添加单击事件。 在时间内添加如下代码:

AxMxDrawX1.DoCommand(1)

DoCommand 函数的功能是执行控件命令;所有与用户交互的函数必须在控件命令中执行,所以这里调用DoCommand执行控件命令。 这里传的参数“1”是命令ID号,这个ID号可以随意取值,有多个命令时,ID值不能重复。

增加CAD控件命令执行事件处理函数并添加如下代码:

        Dim app As MxDrawXLib.MxDrawApplication
        app = New MxDrawXLib.MxDrawApplication
        '绘制直线命令代码
        If e.iCommandId = 1 Then
            Dim curSpace2 As MxDrawXLib.MxDrawBlockTableRecord
            curSpace2 = app.WorkingDatabase.CurrentSpace

            Dim mxUtility As MxDrawXLib.MxDrawUtility
            mxUtility = New MxDrawXLib.MxDrawUtility

            Dim getPt1 As MxDrawXLib.MxDrawPoint

            getPt1 = mxUtility.GetPoint(getPt1, Chr(13) + Chr(10) + "点取第一点:")

            If (getPt1 Is Nothing) Then
                MsgBox("用户取消..")

                ' 释放非托管对象
                System.Runtime.InteropServices.Marshal.ReleaseComObject(curSpace2)
                curSpace2 = Nothing

                Exit Sub
            End If

            Dim getPt2 As MxDrawXLib.MxDrawPoint

            getPt2 = mxUtility.GetPoint(getPt1, Chr(13) + Chr(10) + "点取第二点:")

            If (getPt2 Is Nothing) Then
                MsgBox("用户取消..")

                ' 释放非托管对象
                System.Runtime.InteropServices.Marshal.ReleaseComObject(curSpace2)
                curSpace2 = Nothing

                Exit Sub
            End If

            Dim newLine As MxDrawXLib.MxDrawLine
            newLine = curSpace2.AddLine(getPt1.x, getPt1.y, getPt2.x, getPt2.y)

            newLine.colorIndex = MxDrawXLib.MCAD_COLOR.mcRed

            ' 释放非托管对象
            System.Runtime.InteropServices.Marshal.ReleaseComObject(curSpace2)
            curSpace2 = Nothing

            System.Runtime.InteropServices.Marshal.ReleaseComObject(newLine)
            newLine = Nothing

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文