你是指Ctrl+Z事件吧?
不知道标准的做法是怎么样,不过可以看一下人家的开源软件,好像notepad++是开源的,把他的源代码拖下来慢慢参考就是。
我直接的想法是:做个内存链表(当然文件也可以)来保存每个操作之后的变化量;由于要实现Ctrl+Z (撤销)和Ctrl+y(恢复撤销),所以就用双向链表咯。
比如
link_head--> item[+XXXX]<-->item[-XXXXX]<->item[+XXXX]<-->item[+XXXX] <——link_tail
在用一个Current_item 时刻指向链表的尾部,当相应Ctrl+Z或者Ctrl+Y的时候,用Current——item来浮动读取链表的状态咯。
实现细节上,可以还得考虑很多数据结构和算法问题,哈哈,这些是万版的工作了