Восстановление состояния
Если Вы определили kFalse для автоотмены, applyPartialUndo объекта () функция называется, когда команда UNDO вызвана. ApplyPartialUndo () функция - виртуальная функция на AcDbObject.
Полученные классы могут осуществлять эту функцию, чтобы интерпретировать класс - определенную информацию, сохраненную регистратором отмены и читать это в. ApplyPartialUndo () функция должна гарантировать, что ваш класс выполнил модификацию. Если не, это супер-сообщение, как показано в следующем примере.
Если Вы осуществляете частичный механизм отмены, убедитесь, что вызвали{*назвали*} следующую функцию так, чтобы никакая регистрация не случилась по умолчанию.
AssertWriteEnabled (kFalse, kFalse);
Как пример, имеется AsdkPoly-функция applyPartialUndo()
Acad::ErrorStatus
AsdkPoly::applyPartialUndo(AcDbDwgFiler* filer,
AcRxClass* classObj)
{
// The first thing to check is whether the class matches
// ours. If it doesn’t, we call the base class’s
// applyPartialUndo(); hopefully, one of them will
// take care of it.
//
if (classObj != AsdkPoly::desc())
return AcDbCurve::applyPartialUndo(filer, classObj);
// Read the op-code and call the appropriate "set"
// method to undo what was done. The "set" does the
// filing again for redo.
//
Adesk::Int16 shortCode;
filer->readItem(&shortCode);
PolyOpCodeForPartialUndo code;
code = (PolyOpCodeForPartialUndo)shortCode;
Adesk::UInt32 value32;
switch (code) {
case kSetNumSides:
filer->readItem(&value32);
AOK(setNumSides(value32));
break;
default:
assert(Adesk::kFalse);
break;
}
return Acad::eOk;
}