프로그래밍

1단계 Undo하기

panpro 2006. 11. 5. 15:24
1단계 Undo하기.
아주 단순하게 1단계의 Undo만 할 수 있다. 생각해 봤는데 그렇게 어렵지 않게 할 수 있다.

만약 TextList를 Undo한다면 다음과 같이 하면 된다.

TextList의 형이 CTextList라면 CTextList형으로 2개의 슬롯을 만든다.
배열을 이용하자.
CTextList textlist[2]
이렇게 2개의 배열을 만든다.

그리고 int m_nUndoIndex를 통해 2개의 배열중 어느 배열을 이용하면 되는지를 알 수 있다.
처음엔 0으로 세팅한다. 그리고 0번째 배열에 맨 처음 초기 상태의 값들을 넣는다. 이렇게 해야 맨 처음 한번 데이터를 넣고 그걸 Undo할 때 맨 처음 상태로 돌아갈 수 있다.

그리고 데이터를 하나씩 추가할 때마다 m_nUndoIndex를 0, 1로 toggle한다.
그러니까 0번째 슬롯, 1번째 슬롯에 번갈아 가면서 데이터를 넣는다.


textlist[0]