Here's a short outline to go by:
1. Check your IDE help to find out how to create a SDI (single document interface) or MDI (multiple document interface) application. Adding a big edit box shouldn't be too hard either.
2. Add an existing version of a stack such
std::stack, or implement your own.
3. You can use the stack to save individual changes. This will help with your undo function. Think about what it takes to identify an individual change, and how you can capture it.
4. redo requires additional work, as you cannot simply discard the actions you've undone.
If you have any further questions you are welcome to ask, but at least write some code first and try for yourself before calling for help.