Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Показать файлы в директории как картинки


Автор: Aleksandor 21.9.2006, 20:32
В окне моей программы необходимо показать все файлы конкретной директории в виде thumbnails (как в ACDSee и других image browsers). Подскажите пожалуйста алгоритм оптимальный с точки зрения быстродействия (нужна совместимость с виндой 98 (!)
Мне в голову не приходит ничего лучше как в отдельном потоке открывать файл за файлом, с помощью StretchDIBits рисовать в контексте памяти (какой кстати максимальный размер canvas'a в 98 винде?), затем выводить на экран часть канваса. 
Может есть идеи получше?

Автор: Antropoid 21.9.2006, 21:27
Если я правильно понял глубину вопроса, то тогда легко можно использовать List Control cо стилем  View.

Автор: Earnest 22.9.2006, 07:28
Antropoid, проблема, видимо не в том, как показать, а как получить картинки... Но в принципе прав, использовать List View удобнее...
Aleksandor, нормальный способ, только создавай отдельные битмапы для каждого файла (а не один большой). Если будешь использовать ListView, то одного битмапа хватит: после чтения его содержимое заливаешь в ImageList от ListView, и используешь для чтения нового...

Автор: Aleksandor 22.9.2006, 21:13
В нормальнои ListView контроле есть 4 стиля - report view, list view, small icons, large icons. 
А как добавить thumbnails? GDI+ наверное не подходит так как нужна совместимость с ранней виндой.

Писать самому? 

Автор: Earnest 25.9.2006, 07:43
thumbnails это стиль не ListView, а эксплорера. Есть стандартное окно в API для выбора файлов: OpenFile. Со стилем эксплорер оно все умеет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)