Как в PB в RichEdit'e реализовать многократную отмену? Где-то прочитал, что она должна работать автоматом по ctrl+z/ctrl+y(то бишь, как обычно), но почему-то не катит.. Может что-то изменить при "выкладывании" или.. не знаю?
На vb.code.kiev.ua валялся исходник множественного Undo и Redo. Там два класса - так и называютсяUndo и Redo. В ВБ работает нормально, я на нем редактор шаблонов делал - без проблем. По моему там как самодельный стек для Анду и Реду реализован. Скачай посмотри, может пригодится. Называется rtb_multiundo.zip
Спасибо, ... но пример этот мне известен и он, кстати, недоработанный, например, dragNdrop ему совершенно неизвестен(стоит перетащить что и все сбивается) и еще какие-то проблемы(по-крайней мере так было, когда я его скачивал в последний раз). Я как-то пытался делать мультиундо(с перетаскиванием) в этом стиле, что-то получилось, но не очень надежно.
Вообще том и проблема, что в richEdit этот MultiUndo встроен(в 1,0 может и не встроен, но этот контрол, ИМХО мало у кого есть), я просто не знаю как им пользоваться.. А изобретать плохо работающий велосипед не хочется.
Кто-нибудь в курсе?
ЗЫ: а как это сделано в RichPad'e CyRax'a? CyRax, F1!
В том то и шняга, что Microsoft RichTextBox control (Richtx32.ocx) основан на Windows 95 Rich Text Edit Control (Riched32.dll). Устаревший он короче. Хотя для VS'98 я думаю в самый раз.
OCX'ы как я уже говорил - полный [sensored]. Тем более для VB, который сильно от них зависит.
Я пробовал получить формат RichTextBox'а средствами Riched2, но ничего не вышло. А средствами первой верси всё получилось.
Так что можно сделать выводы.
Но попробуй на всякий случай.
EM_SETUNDOLIMIT
[This is preliminary documentation and subject to change.]
Rich Edit 2.0 and later: Send an EM_SETUNDOLIMIT message to a rich edit control to set the maximum number of actions that can stored in the undo queue.
Rich Edit 1.0: This message is not supported.
EM_SETUNDOLIMIT wParam = (WPARAM) nMax; // maximum number of undo actionslParam = 0 ; // not used; must be zero
Извини много лишнего написал. Просто такой вопрос уже задавался для VB. Переписывать уже влом.
Да ты и сам поймещь что Riched32 - это первая версия контрола.