- UID
- 8484
- 积分
- 82
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-8-5
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
那位有空能帮我把以下代码段加入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执行>> |
|