[リストへもどる]
一括表示

投稿時間:2003/07/10(Thu) 17:24
投稿者名:mitu
Eメール:
URL :
タイトル:
MsFlexGridでのUndo
お世話になります。
現在、MsFlexGridにて、切り取り、コピー、貼り付けなどの編集を
おこなうポップアップメニューを表示しています。
その中に、元に戻す機能があるのですが、
どのようにすればよいのか教えてください。

SendMessage API関数とWM_UNDOメッセージで、試したのですが、
うまくいきませんでした。MsFlexGridには、無効なんでしょうか?
何か方法をよろしくお願いします。

投稿時間:2003/07/10(Thu) 17:57
投稿者名:Say
Eメール:
URL :
タイトル:
Re: MsFlexGridでのUndo
> SendMessage API関数とWM_UNDOメッセージで、試したのですが、
> うまくいきませんでした。MsFlexGridには、無効なんでしょうか?

ヘルプ(Platform SDK)にあるように、
引用-------------------------------
An application sends a WM_UNDO message to an edit control to undo the
last operation. When this message is sent to an edit control,
the previously deleted text is restored or the previously added text is deleted.
-------------------------------引用おわり

> 何か方法をよろしくお願いします。
1回Undoでいいなら、
いちばん簡単なのは、Gridをもう1つ隠し持っていて、
オペレーションの度に切り替えながら使うことでしょう。

複数Undoしようとすると、回数分Gridが必要になり、
メモリをバカ食いしますので、非現実的ですから、
オペレーション時に

「オペレーション内容」
「オペレーション位置」
「オペレーション前データ」
「オペレーション後データ」

を履歴として保存しておけば、
UnDo,ReDo可能です。