CAd二次开发

hou_jiangzhen 2012-08-13 09:42:35
我在CAd上插入光栅图像,默认加载在0图层上,我想用程序控制他的透明度,但是这样写的程序运行没有结果,还请大家帮忙?多谢!

bool CGisMapUrlDlg::SetImageTransparency( bool bFlags )
{
// 从0图层上获取实体Id
CQKQueryLayer mQkq(NULL);
mQkq.AddQuery(_T("0"));
AcDbObjectIdArray arrIds = mQkq.GetAllIds();

int iCount = arrIds.length();
for (int i=0;i<iCount;++i)
{
AcDbObjectId id= arrIds.at(i);
// 打开实体
AcDbRasterImage *pEnt = NULL;
if(Acad::eOk !=acdbOpenObject(pEnt, id,AcDb::kForWrite))
{
continue;
}
AcCmTransparency transparency = pEnt->Transparency();
transparency.setAlpha(255);
if(bFlags)
{
transparency.setAlpha(0);
}

Acad::ErrorStatus es = pEnt->setTransparency(transparency);
pEnt->close();
}
// 刷新
acDocManager->lockDocument(acDocManager->mdiActiveDocument(),AcAp::kWrite,NULL,NULL,true);
Acad::ErrorStatus es = actrTransactionManager->queueForGraphicsFlush();
actrTransactionManager->flushGraphics();
acedUpdateDisplay();
acDocManager->unlockDocument(acDocManager->mdiActiveDocument());
return true;
}
...全文
151 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,245

社区成员

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

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