获取ACAD实例对象的方法
ActiveX开发,关键是获取AutoCAD的实例对象,在获取其实例对象之后,余下来的工作就是应用程序本身应该实现的功能。使用Visual C++来开发ActiveX程序,与使用VB应该说是大同小异的。以下给你一个用QureyInterface()方法获取ACAD 2000的实例对象的函数,你可以将它添加到你的控件事件代码中去。
首先要保证你的工程引用以下的库文件:
acad15.lib,rxapi.lib,acedapi.lib,acrx15.lib,acutil15.lib并忽略msvcrtd.lib
以下是代码:
#include <rxregsvc.h>
#include <aced.h>
void GetAcadInstance(void)
{
AutoCAD::IAcadApplication *pCad;//首先声明一个ACAD应用程序实例指针
HRESULT hr=NOERROR;//C++结果句柄
CLSID slcid; //C++类ID
LPUNKNOWN pUnk=NULL;
LPDISPATCH pAcadDisplay=NULL;
hr=::CLSIDFromProgID("AutoCAD.Application",&clsid);
/*若已启动ACAD窗口实例,将ACAD类ID送到clsid指向的地址,若未启动ACAD,则系统将启动ACAD,并将ACAD类ID送到clsid指向的地址*/
if (SUCEEDED(hr))
{
if(::GetActiveObject(clsid,NULL,&pUnk)==S_OK)
{
if(pUnk->QueryInterface(IID_IDispatch,
(LPVOID*)& pAcadDisplay)!=S_OK)
return;
pUnk->release();
}
}
if(SUCEEDED(pAcadDisplay->QueryInterface(AutoCAD::
IID_IAcadApplication,(void**)& pCad)))
pCad->put_Visible(true);//显示ACAD窗口
else
{
acutPrinf("\nQueryInterface出错!");
return;
}
}
求教!
你好!我是CAD的初学者,因为工作的需要要进行CAD的开发,现在遇到了问题,想请教一下:我想在以有的图框中填加图形,怎样定义坐标点?比如说图框中画了一个平面直角坐标系,新画的图要根据这个坐标来画,比如画入过(3,4)和(7,8)点的直线,该怎么画?我用的是VB调用AUTOCAD2002.谢谢!!!
页:
[1]