Здравствуйте, Cloudo, Вы писали:
C>Но пока более простая задача — сделать аналог Lister'а.
C>В качестве графического объекта был выбран RichEdit, т.к. нужно будет подсвечивать различия между файлами другим цветом. C>Для подкачки кусков файла использую маппинг — функции CreateFileMapping / MapViewOfFile.
C>Проблема заключается в том, что я плохо представляю как реализовать незаметную подкачку другого куска (64 кб) и возможность по скроллу перейти в любое место файла.
Насколько я понимаю, редактирование не предполагается, выделение строк/символов — тоже.
Тогда зачем нам кузнецRichEdit? Управление его скролбаром может обернуться кучей багов — все таки скроллбар учитывает текущий объем текста, загруженный в редактор.
ИМХО достаточно вызвать DrawText, чтобы нарисовать текст.
Насчет незаметной подкачки. Загрузить кусок выше и кусок ниже отображаемого. Если происходит скролирование, то при достижении граничного значения (скажем, когда до края блока остается меньше количество_строк_умещающихся_на экране/2) загружать очередную порцию данных.
А вообще, в целом по задаче...
Для просмотра файлов размером > 4 Гб управление через скроллбар не очень хорошая затея — получается слишком грубо, малейшее прикосновение и текущая позиция будет улетать пес знает куда. Нужно хорошенько обдумать способ навигации.
_____________________
С уважением,
Stanislav V. Zudin