Ситуация — есть директория с файлами, надо их все загнать в CListCtrl. Причём перед названием каждого файла надо вставить иконку, с которой он отображается в Windows. То есть надо фактически сделать копию Windows — окошка, с такой функциональность. Проблема в том, что я не знаю, как из файла получить его иконку, функция ExtractIcon(Ex) здесь не подходит, она работает только с исполняемыми файлами или файлами .ico.
Здравствуйте, Trapper, Вы писали:
T>Ситуация — есть директория с файлами, надо их все загнать в CListCtrl. Причём перед названием каждого файла надо вставить иконку, с которой он отображается в Windows. То есть надо фактически сделать копию Windows — окошка, с такой функциональность. Проблема в том, что я не знаю, как из файла получить его иконку, функция ExtractIcon(Ex) здесь не подходит, она работает только с исполняемыми файлами или файлами .ico.
T>Что здесь можно придумать?
Использовать системный ImageList и получать индекс иконки через SHGetFileInfo() с SHGFI_SYSICONINDEX.
Re[2]: Как получить иконку из произвольного файла?
Я более — менее разобрался, но появилась большая проблема — при попытке взять иконку с текстового файла, иконка берётся, но у неё отвратительное качество. При поптыке взять с других файлов иконку (я пробовал на dll — файлах) иконка вообще не берётся!
иконки отображаются полноцветные но есть одна проблема , то что из таких файлов как .exe , .ico , .lnk не ковыряются сами рисунки , т.е. в место них ковыряется системный рисунок
вот как сделать так чтобы ковырялись сами рисунки я хотел узнать
Re[2]: Как получить иконку из произвольного файла?
Здравствуйте, TalleR, Вы писали:
TR>DWORD dw = GetFileAttributes(путь к файлу); TR>SHGetFileInfo(имя файла, dw , &info, sizeof (SHFILEINFO), SHGFI_USEFILEATTRIBUTES | SHGFI_ICON |
TR>иконки отображаются полноцветные но есть одна проблема , то что из таких файлов как .exe , .ico , .lnk не ковыряются сами рисунки , т.е. в место них ковыряется системный рисунок TR>вот как сделать так чтобы ковырялись сами рисунки я хотел узнать
Убрать флаг SHGFI_USEFILEATTRIBUTES и GetFileAttributes(). С этим флагом берется иконка не из конкретного указанного файла, а стандартная для данного типа файлов.
Re[3]: Как получить иконку из произвольного файла?
Здравствуйте, algol, Вы писали:
A>Убрать флаг SHGFI_USEFILEATTRIBUTES и GetFileAttributes(). С этим флагом берется иконка не из конкретного указанного файла, а стандартная для данного типа файлов.
да .. всё верно .. у меня всё заработало .. как это я сразу не догадался . спасиб )
если что в аську 202637286