Undo-Buffer
-
Hallo, gibt es eine Möglichkeit bei Edits und Richedits in der Winapi den Undo-Buffer auszuschalten ohne das die Undos verloren gehen. Also wenn man Undo/Redo später wieder aktiviert man die gleichen Undo Einträge noch hat wie zuvor. Entschuldigung für die Formulierungen ich weis einfach nicht wie ich diese Undo Einträge besser nennen kann.

-
Hmmm,
guck Dir mal die folgenden Nachrichten an, als Sprungbrett:EM_CANUNDO
EM_EMPTYUNDOBUFFER
EM_UNDO
WM_UNDO
EM_REDO (erst ab Rich-Edit 2.0)Wahrscheinlich mußt Du das Edit-Control subclassen und die obigen Nachrichten abfangen?
Nur meine Vorstellung wie ich es so anfangen würde.
Warum willst Du das so machen?
Martin
-
Meines wissens nach kann man die Anulierungs- o. Wiederherstellungsliste
nur mit EM_SETUNDOLIMIT abschalten in dem man die Begrenzung der Liste auf NULL stellt.
was aber zur folge hat, das keine einträge in diese liste stattfinden. somit auch beim wiederanschalten der liste alle dazwischenliegenden einträge verlohren gehen. ob die einträge die vor dem abschalten der liste getätigt wurden beibehalten/gespeichert werden weis ich nicht.wenn du das aus leistungsgründen machen willst, lege die begrenzung der Liste auf einen kleineren wert. der standartwert der Begrenzung liegt bei 100.
-
Auf beides bin ich selber schon gekommen und beides hat nichts gebracht. Das Problem ist das ich mit EM_SETCHARFORMAT die Textfarbe bestimmter Wörter ändere aber das dann auch in den Undo-Buffer kommt. Deshalb wollt ich ihn kurzzeitig abschalten und dann hinterher wieder anschalten. Subclassing bringt nichts wenn ich EM_SETCHARFORMAT abfange wird nichts geändert wenn ich die Nachricht an die richtige Funktion weiterleite wird der Undobuffer Eintrag und die Textfarbe auf einmal gemacht ohne zusätzliche Nachrichten. Wenn es keine Lösung für das Problem gibt muss ich wohl den ganzen Undobuffer ausschalten und selber einen schreiben. Ist zwar au kein riesen Geschäft aber über eine einfache Nachricht wäre es natürlich viel leichter. Also falls noch einer eine Idee hat ich würde mich freuen :).