我有一ListView,现在由用户向其中增加文件,这几步没有什么问题,但如何才能把文件所对应的图标显示出来?如.txt文件就显示一个记事本的图标,.exe就显示这个exe文件的图标等!
解决方案 »
- 点击 CTreeCtrl,属性栏CBCGPPropList发生响应
- C++程序问题
- CFile类或CFileDialog类有没有能得到文件路径 不带文件名的方法?
- 操作另一个进程的组合框
- 在通过路由器自动获IP的电脑上,如何使用TCP或UDP协议来做Socket编程?
- 怎么判断程序在运行?还是没有开启?
- 执行调用了dll的应用程序出现的 ”调试对话“ 是什么意思?
- 怎么模拟一直按着z和x一段时间
- 请问完成端口的Socket模型如何解决数据同步问题??????????
- 简单问题,大家帮我翻译两句话(中翻英)
- 请问各位高手,MFC不用RTTI而实现类的动态检测的原理是什么?
- 请问win2000关机是调用了哪个程序?
不能这样做,.txt文件可能默认是由记事本打开的,所以在资源管理器可以对应记事本图标,但如果我设置.txt的打开方式为ultraedit时,所有的.txt所对应的图标就变成了ultraedit的样子了!所以,我不能准备好所有的图标到imagelist中.
to hermitbab(hanzo):
我Must使用ListView,因为我定义的好多数据结构都是为ListView的指针数据打交道的,我不知道D6的那个能不能使用指针。
SHFILEINFO sh = {0};
HIMAGELIST hImage = SHGetFileInfo("c:\\*.*", 0, &sh, sizeof(sh), SHGFI_SYSICONINDEX );ListView_SetImageList(hList, hImage, LVSIL_SMALL);
显示文件的Icon时:SHFILEINFO sh = {0};
SHGetFileInfo("c:\\a.txt", 0, &sh, sizeof(sh), SHGFI_ICON|SHGFI_SMALLICON );
sh.iIcon就是你要的东西了。
另外,你不可以用ImageList_Destroy(hImage)的。
还是VC版有高人啊!