ExtractAssociatedIcon
От: Бадян Украина  
Дата: 02.04.02 18:06
Оценка:
Приветствую вас, Господа и Дамы (особенно kirin-у, а то других дам так сразу и не припомню).

Теперь собственно вопрос. Хочу получить иконку асоциирумую с типом файла. Пользуюсь ExtractAssociatedIcon. Это хорошо! Функция возвращает хэндл иконки размером 32x32. Это тоже хорошо, но не всегда. Особенно когда хочется вывести иконку размером 16x16. Для этого я пользуюсь DrawIconEx. Это хорошо! Плохо то, что иконки какие-то корявые получаются. Что сделать чтобы стало хорошо? Проводник ведь могет...

Заранее благодарю.
В те далекие времена, когда байты были еще битами...
Re: ExtractAssociatedIcon
От: Alex Fedotov США  
Дата: 02.04.02 18:23
Оценка:
Здравствуйте Бадян, Вы писали:

Б>Теперь собственно вопрос. Хочу получить иконку асоциирумую с типом файла. Пользуюсь ExtractAssociatedIcon. Это хорошо! Функция возвращает хэндл иконки размером 32x32. Это тоже хорошо, но не всегда. Особенно когда хочется вывести иконку размером 16x16. Для этого я пользуюсь DrawIconEx. Это хорошо! Плохо то, что иконки какие-то корявые получаются. Что сделать чтобы стало хорошо? Проводник ведь могет...


Попробуй SHGetFileInfo с флагами SHGFI_ICON|SHGFI_SMALLICON.
-- Alex Fedotov
Re: ExtractAssociatedIcon
От: Бадян Украина  
Дата: 02.04.02 18:37
Оценка:
Я несколько в недоумении. Если написать

TIcon *Icon = new TIcon();
WORD index=0;
int n=0;
Icon->Width = 32;
Icon->Height = 32;
Icon->Handle = ExtractAssociatedIcon(NULL, sr.Name.c_str(), &index);
ImageList1->AddIcon(Icon);
ListItem = ListView->Items->Add();
ListItem->ImageIndex = n++;


то выглядит все как я и хотел, тоесть хорошо. Но почему же если ручками DrawIconEx, то не хорошо (как-то смазано)?
В те далекие времена, когда байты были еще битами...
Re[2]: ExtractAssociatedIcon
От: Бадян Украина  
Дата: 02.04.02 18:48
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Попробуй SHGetFileInfo с флагами SHGFI_ICON|SHGFI_SMALLICON.


Пасибочки!!! Теперь работает так, как я хотел.
В те далекие времена, когда байты были еще битами...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.