Предположим, у меня есть программа, в которой есть окошеко куда сваливется лог выполнения. Ясно, что он только растет и по ходу программы только увеличивиется и может стать довольно большим. Для отображенияшога использую элемент richedit 2.0. Так вот проблема в том, как эффективно добавить туда новую информацию. Подход в лоб — WM_SETTEXT. Мне не нравится это решение — это означает 1) копирование 2) переаллокацию буфферов для текста в ядре win32 3) хранение двух копий текста в памяти. Есть идейка через clipboard. Дело в том что win32 не мой конек, и хотелось не изобретая велосипед узнать, какие методы решения есть мой задачи.
Здравствуйте, demi, Вы писали:
D>Для отображенияшога использую элемент richedit 2.0. Так вот проблема в том, как эффективно добавить туда новую информацию.
EM_SETSEL
EM_REPLACESEL
если правильно понял.
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Здравствуйте, ekamaloff, Вы писали:
E>Здравствуйте, demi, Вы писали:
D>>Для отображенияшога использую элемент richedit 2.0. Так вот проблема в том, как эффективно добавить туда новую информацию.
E>EM_SETSEL
E>EM_REPLACESEL
E>если правильно понял.
А вообще с хендлами заморачиваться стоит? EM_SETHANDLE? Я буду туда писать текст и периодически слать WM_PAINT. Сам понимаю, что если возможно в это памяти содержится служебная информация а не только мой текст, то мы в лучшем случае быстренько накроемся... А вообще EM_SETSEL решает проблему, хотя что-то в нем от беса
Здравствуйте, Аноним, Вы писали:
А>А вообще с хендлами заморачиваться стоит? EM_SETHANDLE? Я буду туда писать текст и периодически слать WM_PAINT. Сам понимаю, что если возможно в это памяти содержится служебная информация а не только мой текст, то мы в лучшем случае быстренько накроемся... А вообще EM_SETSEL решает проблему, хотя что-то в нем от беса
1) Вряд ли EM_SETHANDLE чем-то мог бы помочь в твоем случае. Не стоит заморачиваться насчет того, где он там хранит свои данные. Ты записал в лог и записал в edit, никакого двойного хранения данных я не вижу
2) EM_SETHANDLE не поддерживается RichEdit-ом
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde