Доброго времени суток уважаемые форумчане. Есть приложение и есть в нем функция конвертирования бинарных данных в текстовый вид, аля BinToHEX. В памяти бинарные данные конвертируются быстро (многопоточность), но у меня проблема с отображением выходных данных в EditControl'e, при больших объемах входных данных. Подопытный файл имеет размер ~ 1Мб, т.е. выходных данных получается ~4мб (UNICODE). WM_SETTEXT работает медленно (ОЧЕНЬ медленно), что не есть гут. Пробовал так, Код (Text): invoke SendMessage,func(GetDlgItem,hdialog,IDE_RESULT),EM_GETHANDLE,0,0 invoke LocalFree,eax mov ecx,fSize ;размер входных данных shl ecx,2 add ecx,2 mov pmem,func(LocalAlloc,LMEM_MOVEABLE or LMEM_ZEROINIT,ecx) invoke LocalLock,pmem mov edi,eax mov esi,pOut mov ecx,fSize shl ecx,1 rep movsw invoke LocalUnlock,pmem invoke SendMessage,func(GetDlgItem,hdialog,IDE_RESULT),EM_SETHANDLE,pmem,0 ; и тут прога уходит в глубокий даун Так уже быстрее, но все равно не то, 4Мб вставляются > 10 мин. Вопрос, есть ли способы быстрого отображения большого количества текста в EditControl?
Попробуйте RichEdit (а может static? ), обычный edit явно тормознутый. Открыть в блокноте файл в несколько мегабайт - огромная проблема. Если не поможет, то выход один - писать свой контрол. Если он используется только для вывода текста, то это несложно должно быть.
dr_godsl Отображайте данные частями. Не обрабатывайте сто страниц из ста, а только текущую, которая должна отображаться.
Были такие мысли, в ожидании более простого решения делать не стал. Заюзал RichEdit, результатом приятно удивлен. Всем спасибо вопрос решен.