找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 627|回复: 5

[VBA程序]:SendMessage问题,请教斑竹!!

[复制链接]
发表于 2004-6-4 17:26:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
VBA程序中调用SendMessage来执行命令,命令执行过程中带有点和选择集,需要参数化传递,请问该如何编写?能否贴出段示例代码,先谢谢诸位!是否得用lisp函数先参数话字符串?
VBA刚入门,请教诸位了!
点和选择集的实际值都需要在过程中传递给Command,该怎样做?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-7 08:57:11 | 显示全部楼层
是SendCommand吧,用选择集只能用ActiveSelectionSet和PickfirstSelectionSet,点转化为"x,y"形式的字符串
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-7 10:12:10 | 显示全部楼层
应该是SendCommand,非常感谢!如果有相关实例能否贴一段上来?不情之请,不好意思
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-7 10:26:16 | 显示全部楼层
快速选取一层的所有对象,进行相应的操作
Sub QSelLayerControl()
'程序功能:快速选取一层的所有对象,进行相应的操作
    Dim i  As AcadEntity
    Dim ss As AcadSelectionSet
    Dim ft(0) As Integer, fd(0)
    Dim pLayer As String
    Dim pControl As String
    pLayer = ThisDrawing.Utility.GetString(0, vbCrlLf & "请输入层名:")
    ft(0) = 8: fd(0) = pLayer
    Set ss = ThisDrawing.ActiveSelectionSet
    ss.Clear
    ss.Select acSelectionSetAll, , , ft, fd
    If ss.Count = 0 Then
        ss.Delete
        ThisDrawing.Utility.Prompt "层内没有对象或层不存在!"
    Else
        ThisDrawing.Utility.InitializeUserInput 1, "Move Copy Erase"
        pControl = ThisDrawing.Utility.GetKeyword(vbCr & "请输入操作名[Move(移动)/Copy(复制)/Erase(删除)]:")
        ThisDrawing.SendCommand "." & pControl & vbCr & "p" & vbCr & vbCr
    End If
'附:将下列代码Copy到acad200?doc.lsp中,执行命令QSLC
'    (defun C:QSLC()
'    (setvar "cmdecho" 0)
'    (command "-vbarun" "qsellayercontrol")
'    (setvar "cmdecho" 1)
'    (princ)
'    )
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-7 10:57:18 | 显示全部楼层
上面是选择集的例子,下面是点的例子
Sub lt()
Dim pnt, dot
pnt = ThisDrawing.Utility.GetPoint
dot = ThisDrawing.Utility.GetPoint
ThisDrawing.SendCommand ".Line" & vbCr & pnt(0) & "," & pnt(1) & vbCr & dot(0) & "," & dot(1) & vbCr & vbCr
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-7 12:54:21 | 显示全部楼层
非常感谢斑竹!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-17 11:40 , Processed in 0.187502 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表