找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1160|回复: 8

[求助]:请问怎样刷新一个层?

[复制链接]
发表于 2006-11-23 16:47:10 | 显示全部楼层 |阅读模式

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

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

×
请问怎样刷新一个层?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-11-29 09:36:55 | 显示全部楼层
能具体些吗?你的刷新是什么意思?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-30 17:40:26 | 显示全部楼层
比如程序里修改了MText,我想mtext显示出最新值,但鼠标如果不点击modelspace,就显示不出来,该怎么做?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-3 12:34:47 | 显示全部楼层
这好像和刷新层没关系吧,楼主如果把代码贴出来可能会有人解释
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2006-12-9 13:06:32 | 显示全部楼层
应该是刷新层中的实体

/****************************************************************************
regen
参数:
layerId : 要重画的图层Id,默认为kNull,即重画全图
*****************************************************************************/

void Regen(AcDbObjectId layerId/* = AcDbObjectId::kNull*/)
{
        AcDbBlockTable *pBlockTable;
        AcDbEntity *pEntity;
        // Walk modelspace and tell all Entites to redraw themselves
        if (acdbCurDwg()->getBlockTable(pBlockTable, AcDb::kForRead) == Acad::eOk)
        {
                AcDbBlockTableRecord* pBlockTableRecord;
                if (pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord, AcDb::kForRead) == Acad::eOk )
                {
                        AcDbBlockTableRecordIterator *pBTRecordIterator;
                        if ( pBlockTableRecord->newIterator (pBTRecordIterator) == Acad::eOk )
                        {
                                for (pBTRecordIterator->start(); !pBTRecordIterator->done(); pBTRecordIterator->step ())
                                {
                                        if (pBTRecordIterator->getEntity(pEntity, AcDb::kForWrite) == Acad::eOk)
                                        {
                                                if (layerId!= AcDbObjectId::kNull)
                                                {
                                                        if (pEntity->layerId() == layerId)
                                                        {
                                                                pEntity->recordGraphicsModified();
                                                        }
                                                }
                                                else
                                                {
                                                        pEntity->recordGraphicsModified();
                                                }
                                                // close Entity
                                                pEntity->close();
                                        }
                                }
                                if (pBTRecordIterator)
                                {
                                        delete (pBTRecordIterator);
                                }
                        }
                        pBlockTableRecord->close();
                }
                pBlockTable->close();
        }

        // worldDraw() called for all "dirty" entities
        actrTransactionManager->flushGraphics();
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-12 10:34:45 | 显示全部楼层
xiexie!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-12 11:57:47 | 显示全部楼层
对单个实体进行刷新:
[PHP]void objRedraw(AcDbObjectId &objId)
{
        if(!objId.isValid())
                return;

        AcDbObject *pObj;
        AcDbEntity *pEnt;
        AcDbBlockTableRecord *pRec;
        AcDbObjectIdArray objs;
        BOOL bOk;

        if(acdbOpenAcDbObject(pObj,objId,AcDb::kForWrite)!=Acad::eOk)
                return;

        pEnt=AcDbEntity::cast(pObj);
        if(pEnt!=NULL)
        {
                pEnt->recordGraphicsModified();
                pEnt->downgradeOpen();
                pEnt->draw();
                pEnt->close();
                return;
        }

        pRec=AcDbBlockTableRecord::cast(pObj);
        if(pRec==NULL)
        {
                pObj->close();
                return;
        }

        bOk=(pRec->getBlockReferenceIds(objs)==Acad::eOk && objs.length()>0);
        pObj->close();
        if(!bOk)
                return;

        for(int i=0;i<objs.length();i++)
                objRedraw(objs);
}[/PHP]
刷新所有实体:
[PHP]void objRedraw()
{
        actrTransactionManager->queueForGraphicsFlush();
        actrTransactionManager->flushGraphics();
        acedUpdateDisplay();
}[/PHP]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-12-15 21:47:01 | 显示全部楼层
thx
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-2-3 14:05:50 | 显示全部楼层
//刷屏操作(屏幕顯示更新)
                                        actrTransactionManager->flushGraphics();
                                        acedUpdateDisplay();
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-12 09:12 , Processed in 0.368892 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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