如何根据文件类型提取文件图标? 我知道SHGetFileInfo可以提取确实存在的文件的图标,现在要求在文件不存在而只知道文件名的情况下获得文件对应的图标。一定给分。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是我写的程序的一部分: int nItem = 0; DWORD dwFileAttr; if (finder.IsDirectory()) dwFileAttr = FILE_ATTRIBUTE_DIRECTORY; else dwFileAttr = FILE_ATTRIBUTE_NORMAL; TCHAR szFile[_MAX_PATH]; lstrcpy(szFile, finder.GetFilePath()); TCHAR szExten[_MAX_FNAME]; lstrcpy(szExten, ::PathFindExtension(szFile)); // 提取文件图标 SHFILEINFO sfi; HIMAGELIST hil = (HIMAGELIST)SHGetFileInfo(szExten, dwFileAttr, &sfi, sizeof (SHFILEINFO), SHGFI_USEFILEATTRIBUTES | SHGFI_TYPENAME | SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | SHGFI_SMALLICON); if (hil && !m_imglstFile.GetSafeHandle()) m_imglstFile.Attach(hil); pListCtrl->SetImageList(&m_imglstFile, LVSIL_SMALL); pListCtrl->InsertItem(nItem, finder.GetFileTitle(), sfi.iIcon); msdn有一个完整的例子,就在你硬盘的 sample中,叫*file*,找找看呵呵 为某个程序安装线程钩子 arp欺骗后,怎么转发数据呢 如何得到量化表对DCT后的数据进行量化? 执行到strcpy怎么会出错 求些opc资料,有源码更好。 VC中能否动态在VF中创建视图?急!!! 在vc中使用ado的简单问题 赚分不要太容易!!!!! 如何在程序缩小窗口时将图标加入到taskbar DIRECTSHOW中,为什么查不到CLSID_SampleGrabber组件中的IID_IBaseFilter接口啊 制作帮助文件,找不到好软件,有几个好的都不支持中文! 如何在程序里调用google并返回结果?
DWORD dwFileAttr;
if (finder.IsDirectory())
dwFileAttr = FILE_ATTRIBUTE_DIRECTORY;
else
dwFileAttr = FILE_ATTRIBUTE_NORMAL; TCHAR szFile[_MAX_PATH];
lstrcpy(szFile, finder.GetFilePath()); TCHAR szExten[_MAX_FNAME];
lstrcpy(szExten, ::PathFindExtension(szFile)); // 提取文件图标
SHFILEINFO sfi; HIMAGELIST hil = (HIMAGELIST)SHGetFileInfo(szExten, dwFileAttr,
&sfi, sizeof (SHFILEINFO), SHGFI_USEFILEATTRIBUTES | SHGFI_TYPENAME |
SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | SHGFI_SMALLICON); if (hil && !m_imglstFile.GetSafeHandle())
m_imglstFile.Attach(hil); pListCtrl->SetImageList(&m_imglstFile, LVSIL_SMALL);
pListCtrl->InsertItem(nItem, finder.GetFileTitle(), sfi.iIcon);
呵呵