#pragma once typedef AcArray ArObjID; // 每一步操作包含的添加和删除的元素数组。 struct RoolStep { ArObjID arObjRemed; ArObjID arObjAdded; }; typedef AcArray > ArAllStep; class CCADEnt; class CDataRoolBack { public: // 清理所有保存的步骤 static void ClearAllStep(); // 新添加一步 static void AddNewStep(); // 添加一个删除的数据 static void AddRemoveData(AcDbObjectId &idRemoved); // 添加一个新添加的数据 static void AddNewData(AcDbObjectId &idNew); // 回退一步 static void RoolAStep(); private: CDataRoolBack(); static ArAllStep m_steps; }; // 添加需要回退的新数据。 AcDbObjectId RoolBackAddNewData(AcDbEntity *pEnt); //删除,并且添加到回退数组 void RoolBackAddRemoveData(CCADEnt *pEnt);