请问如何得到某类文件的图标.
这应是使用Shell类函数,但我的书上刚好没有~
只有求救各位大侠了.
问题点数:30、回复次数:7Top
1 楼gzc(编程工具何其多,我却偏爱BCB)回复于 2001-09-04 12:47:23 得分 0
ExtractIcon(Application->Handle,EXE文件名,0);可获EXE文件的图标。Top
2 楼gzc(编程工具何其多,我却偏爱BCB)回复于 2001-09-04 12:50:34 得分 5
对了,再看看这个网页,保你有收获!
http://www.csdn.net/expert/Topic/28/28737.shtm
Top
3 楼wangxd(东东)回复于 2001-09-04 18:05:21 得分 0
bcb的例子中有Top
4 楼prgboy(编程男孩)回复于 2001-09-04 20:13:34 得分 10
象txt或jpg这些非可执行文件的图标,记录在注册表里,在HKEY_CLASSES_ROOT根键下。单击任何文件扩展名(比如*.txt)时,右侧第一个键值会显示出对应的文件类型(比如"txtfile")。然后再向下找到名为"txtfile"的键,展开会发现一个名为DefaultIcon的子键,其默认键值就是图标所对应的文件名(比如C:\WINDOWS\SYSTEM\Shell32.dll,64是指动态连接库Shell32.dll中第64个图标).
编程时可先在HKEY_CLASSES_ROOT根键下依次搜索扩展名->文件类型->DefaultIcon键值.然后用ExtractIcon(Application->Handle,exe或dll文件名,图标序号)函数抽出exe或dll中的图标即可.
比如要抽取上述*.txt文件的图标,可用以下代码:
TIcon *MyIcon=new TIcon();
MyIcon->Handle=ExtractIcon(Application->Handle,C:\WINDOWS\SYSTEM\Shell32.dll,64);
MyIcon->SaveToFile("filename.ico");Top
5 楼luhongjun(过江项羽)回复于 2001-09-04 20:17:16 得分 5
http://www.csdn.net/expert/TopicView.asp?id=90086Top
6 楼Wingsun(孙春阳)回复于 2001-09-04 20:53:45 得分 10
对啊!就是prgboy(小李飞刀)说的,在Form上放置一个TImage
然后在Button的Click事件中写下:
WORD Icon;
TIcon *pi = new TIcon();
pi->Handle=ExtractAssociatedIcon(HInstance,"F:\\DCP_0008.JPG",&Icon);
Image1->Picture->Assign(pi);
delete pi;
Top
7 楼pankun(剑神一笑 Console下面干革命)回复于 2001-09-05 19:02:05 得分 0
谢谢大家了。抱歉我只能给这么多分...(可用分太少了...)Top




