ObjectArx 实现矩形阵列

stupidorclever 2014-11-14 04:27:24
以下是我做矩形阵列的代码,请大侠们办我分析一下错误原因,如何让函数AcAxArrayRectangular返回的HRESULT的值大于等于0
Acad::ErrorStatus es;
ads_name ent;
ads_point pt;
AcDbObjectId Id;
LPDISPATCH pDisp;
VARIANT pArrayObjs;
HRESULT hr;
BeginEditorCommand();
if (m_ss[0]!=0L||m_ss[1]!=0L)
{
//acedSSFree(m_ss);
m_ss[0] = m_ss[1] = 0L;
}
//acedSSGet(_T(":S"),NULL,NULL,NULL,m_ss);
if (acedEntSel(_T("\n请选择对象..."),m_ss,pt)==RTNORM)
{
CompleteEditorCommand();

//通过对象标识转换函数得到为对象id
es=acdbGetObjectId(Id,m_ss);
if (Acad::eOk==es)
{
acutPrintf(_T("\n选择对象成功,开始阵列"));
pDisp = acedGetAcadWinApp()->GetIDispatch(TRUE);
VariantInit(&pArrayObjs);
V_VT(&pArrayObjs)=VT_ARRAY|VT_DISPATCH;

hr=AcAxArrayRectangular(Id,pDisp,1,3,1,1,20,1,&pArrayObjs);
if (SUCCEEDED(hr))
{
acutPrintf(_T("\n成功"));
}
else if(FAILED(hr))
{
acutPrintf(_T("\n失败"));
}
}
else{
acutPrintf(_T("error"));
}
}
else
{
CancelEditorCommand();
}
...全文
262 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧