zoukankan      html  css  js  c++  java
  • ObjectARX延时动画之定时器简单示意

    使用定时器可以延时操控cad,不影响视图操作。如果你在定时器运行期间使用命令,可能会导致定时器生成的实体无法刷新,变为当前不可见实体。

    示例代码

    //声明静态全局变量
    static int nPrintNumber=0;
    void CALLBACK MyCopyFunc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime);//回调函数声明
    
    void CALLBACK MyCopyFunc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)//回调函数实现
    {
        if(nPrintNumber > 60)
        {
            //销毁定时器
            KillTimer(acedGetAcadFrame()->m_hWnd,1);
        }
        else
        {
            //acutPrintf(_T("
    %d"),nPrintNumber++);
            nPrintNumber++;
            AcDbObjectPointer<AcDbCircle> pCir;
            Acad::ErrorStatus es= pCir.create();
            if (Acad::eOk != es)
            {
                return;
            }
            pCir->setCenter(AcGePoint3d(nPrintNumber*100,0,0));
            pCir->setRadius(150.0);
            pCir->setColorIndex(1);
            AcApDocument *pDoc=curDoc();
            acDocManager->lockDocument(pDoc);
            AcDbBlockTableRecordPointer pBlkRcd(pDoc->database()->currentSpaceId(),AcDb::kForWrite);
            es = pBlkRcd.openStatus();
            if (Acad::eOk != es)
            {
                acutPrintf(_T("
    错误码= %s"),acadErrorStatusText(es));
                return;
            }
            es = pBlkRcd->appendAcDbEntity(pCir);
            if (Acad::eOk != es)
            {
                acutPrintf(_T("
    append错误码= %s"),acadErrorStatusText(es));
                return;
            }
            es = pCir->draw();
            if (Acad::eOk != es)
            {
                acutPrintf(_T("
    draw错误码= %s"),acadErrorStatusText(es));
                return;
            }
            acedUpdateDisplay();
            acDocManager->unlockDocument(pDoc);
        }
    }
    
    //启动定时器
    void StartTimer()
    {
        nPrintNumber=0;
        SetTimer(acedGetAcadFrame()->m_hWnd,1, 100, (TIMERPROC)MyCopyFunc);
    }

    调用 StartTimer 即可。

  • 相关阅读:
    java 集合中将元素倒序排列
    自定义AccessDeniedHandler
    如何在spring中获取request对象
    mybatis 做 insert操作的时候返回插入的那条数据的id
    Spring Security-用户密码自定义加密
    JS定义类及对象
    HTML5坦克大战(1)绘制坦克
    JSON学习【转自慕课网】
    HTML5之语音识别实例
    绚丽的倒计时(1)---画出时钟
  • 原文地址:https://www.cnblogs.com/edata/p/14155191.html
Copyright © 2011-2022 走看看