找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 512|回复: 0

[求助]:那位有空能帮我把以下代码段加入ARX程序中,使它能正确连接

[复制链接]
发表于 2004-3-5 20:14:45 | 显示全部楼层 |阅读模式

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

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

×
那位有空能帮我把以下代码段加入ARX程序中,使它能正确连接

发送WM_COPYDATA消息时,必须构造一个COPYDATASTRUCT结构变量作为消息的第二个参数,既lParam。
COPYDATASTRUCT结构如下:

typedef struct tagCOPYDATASTRUCT{
   DWORD dwData;
   DWORD cbData;
   PVOID lpData;
}COPYDATASTRUCT;

在向AutoCAD2000发送WM_COPYDATA消息时,dwData域必须置为1且为32位;lpData 域必须指向将要发送
的以空字符(null)结束的命令字符串,该域可以为空(null);cbData 域值指定该命令字符串的长度。
如果dwData域值不为1,或者lpData指向的命令字符串不以NULL结束,则AutoCAD 主程序将不会处理该消息。

下面的函数可以向AutoCAD 2000的主程序发送一条字符串命令:

  void SendCommandToAutoCAD(HWND hWndAcad,CString cmd)
  {
   if (!hWndAcad)
     return;
   COPYDATASTRUCT cmdMsg;
   cmdMsg.dwData=(DWORD)1;
   cmdMsg.cbData=(DWORD)_tcslen(cmd)+1;
   cmdMsg.lpData=cmd.GetBuffer(cmd.GetLength()+1);
   SendMssage(hWndAcad,WM_COPYDATA,(WPARAM)hWndAcad,(LPARAM)&cmdMsg);
  }

ADSRX函数 asdw_acadMainWnd()返回 AutoCAD 2000主框架窗口的句柄,其值等于acedGetAcadFrame()->m_hWnd
注意:只有动态链接MFC库时两者才相等(在Project|Settings|General中设置);否则,即时编译能通过,
acedGetAcadFrame()->m_hWnd的值也是错误的,并且毫无意义。

注意:在上述任何情况下,函数asdw_acadMainWnd()的返回值总是正确的。

摘自<<如何让ARX调用LISP函数-兼谈如何发送字符串到命令行让ACAD执行>>
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-25 14:16 , Processed in 0.373500 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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