Undo et richedit

Résolu
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 23 avril 2005 à 16:22
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 - 23 avril 2005 à 17:42
J'ai, comme l'indique le titre, un problème avec les undo dans un richedit.
J'ai dans un menu la commande annuler, et lorsque je clique dessus, j'envoie à mon richedit le message EM_UNDO.
Le richedit reçoit bien le message et il fait bien un undo.
Le seul problème c'est que je ne comprends pas le undo qu'il fait.
C'est pas évident à expliquer :)
On va prendre un exemple:
J'ai un richedit dans lequel j'ai le texe suivant: azerty
Si je tape devant ce texte le texte: test
et que par la suite je fais un (et un seul) clic sur le menu annuler, il m'efface tout le mot test. Et moi, je souhaiterais qu'il ne m'efface que la dernière lettre tapée, puis lors d'un deuxième appui sur le menu, qu'il m'efface l'avant dernière lettre tapée et ainsi de suite.

J'ai testé en mettant la profondeur des undo à 1, cela ne change rien.
J'ai aussi essayé en changeant le mode de texte du richedit(EM_SETTEXTMODE) avec les paramètres TM_MULTILEVELUNDO ou EM_SIMPLELEVELUNDO, mais rien ne change.

Si vous avez des idées, parcque je dois bien dire que là je suis perplexe!
Je pensais que les undo annulait la dernière action (donc pour moi la dernière lettre rentrée dans mon richedit) et apparement non, ce n'est pas le cas!

PS: je n'utilise pas les MFC, ni le c++!

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]

2 réponses

julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
23 avril 2005 à 17:09
J'ai trouvé un debut de solution! Il faut envoyer au richedit le message EM_STOPGROUPTYPING après chaque lettre tapée!


Par contre, lorsque j'appuie sur le bouton undo, il m'annule mon action, puis lors d'un second appui, il me m'annule l'annulement que j'avais fait avat, et il boucle ainsi!


Il faut donc que je retire après chaque undo le prochain undo à faire, savez vous comment faire? Je sais comment effacer toute la liste des undo, mais pas comment n'affacer que le prochain à venir!

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
3
julienbj Messages postés 452 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 19 décembre 2008 15
23 avril 2005 à 17:42
C'est bon, j'ai trouvé pourquoi ça faisait ça!


Je n'utilisais pas la bonne version du richedit!


Il ne faut pas créer le richedit avec comme paramètre de classe dans CreateWindows le paramètre "RichEdit", mais le paramètre "RichEdit20A"!

Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
3
Rejoignez-nous