Multiple Level Undo/Redo

Advanced mechanism for implementing undo/redo into your MFC application

provided by: 
Originally published at Internet.com


INSTRUCTIONS
These are the steps used in the project file to add multi-level undo/redo capability to the Scribble application.

Copy Files

* Copy scribble tutorial files (I used step 3) into new folder. * Copy "command" and "ref object" files into the folder and add them to the project. You could also put them in a library which would be more convenient. These files are: Command.h Command.cpp CommandHistory.h CommandHistory.cpp RefObject.h RefObject.cpp * Add includes for RefObject.h, Command.h, and CommandHistory.h to stdafx.h

Edit Resources * Add undo/redo buttons to the IDR_MAINFRAME toolbar. Make sure their id's are ID_EDIT_UNDO and ID_EDIT_REDO (there are string table entries for both in MFC). You can grab the images from this project. * Add "&Redo" to the IDR_SCRIBBTYPE edit menu and use ID_EDIT_REDO command id.

CStroke Changes * Derive CStroke from CRefObject instead of CObject * Change CStroke's IMPLEMENT_SERIAL macro to use new base class * Under "Operations" add GetBoundingRect declaration to CStroke: CRect GetBoundingRect() const; * Add CStroke::GetBoundingRect definition to ScribDoc.cpp * Immediately after class definition, add CStrokeList typedef for easy use: typedef CTypedRefObList< CStroke* > CStrokeList; ...

Read article at Internet.com site
Regional Articles
- Multiple Level Undo/Redo Alabama
- Multiple Level Undo/Redo Alaska
- Multiple Level Undo/Redo Arizona
- Multiple Level Undo/Redo Arkansas
- Multiple Level Undo/Redo California
- Multiple Level Undo/Redo Colorado
- Multiple Level Undo/Redo Connecticut
- Multiple Level Undo/Redo DC
- Multiple Level Undo/Redo Delaware
- Multiple Level Undo/Redo Florida
- Multiple Level Undo/Redo Georgia
- Multiple Level Undo/Redo Hawaii
- Multiple Level Undo/Redo Idaho
- Multiple Level Undo/Redo Illinois
- Multiple Level Undo/Redo Indiana
- Multiple Level Undo/Redo Iowa
- Multiple Level Undo/Redo Kansas
- Multiple Level Undo/Redo Kentucky
- Multiple Level Undo/Redo Louisiana
- Multiple Level Undo/Redo Maine
- Multiple Level Undo/Redo Maryland
- Multiple Level Undo/Redo Massachusetts
- Multiple Level Undo/Redo Michigan
- Multiple Level Undo/Redo Minnesota
- Multiple Level Undo/Redo Mississippi
- Multiple Level Undo/Redo Missouri
- Multiple Level Undo/Redo Montana
- Multiple Level Undo/Redo Nebraska
- Multiple Level Undo/Redo Nevada
- Multiple Level Undo/Redo New Hampshire
- Multiple Level Undo/Redo New Jersey
- Multiple Level Undo/Redo New Mexico
- Multiple Level Undo/Redo New York
- Multiple Level Undo/Redo North Carolina
- Multiple Level Undo/Redo North Dakota
- Multiple Level Undo/Redo Ohio
- Multiple Level Undo/Redo Oklahoma
- Multiple Level Undo/Redo Oregon
- Multiple Level Undo/Redo Pennsylvania
- Multiple Level Undo/Redo Rhode Island
- Multiple Level Undo/Redo South Carolina
- Multiple Level Undo/Redo South Dakota
- Multiple Level Undo/Redo Tennessee
- Multiple Level Undo/Redo Texas
- Multiple Level Undo/Redo Utah
- Multiple Level Undo/Redo Vermont
- Multiple Level Undo/Redo Virginia
- Multiple Level Undo/Redo Washington
- Multiple Level Undo/Redo West Virginia
- Multiple Level Undo/Redo Wisconsin
- Multiple Level Undo/Redo Wyoming

Rss   Delicious   Digg   Add To My Yahoo   Add To My Google   Bookmark   Search Plugin

Topics:
Architecture & Design Languages & Tools Project Management Web Services
Database Microsoft & .NET Security Wireless
Java Open Source Techniques XML