荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jek (好好学习天天向上), 信区: Program
标  题: 用C++Builder获取应用程序图标
发信站: BBS 荔园晨风站 (Sat Mar 11 17:04:00 2000), 转信


现在,网上有大量的有关图标的共享软件或免费软件,而且很多也很好用,也方便。但是
那毕竟是别人的,用起来总有些哪个,况且自己又喜欢编程,何不自己动手呢!说干就干
,而且手头上有可视化编成的利器――C++Builder4.0,想来应该是很简单的一件事。

首先启动C++Builder,新建一工程,在窗体上放置一个Button控件,一个Image控件,和
一个OpenDialog控件,它们的名称均不必改动。双击Button控件,写如下代码:

if(OpenDialog1->Execute())

{

FileName = OpenDialog1->FileName;

HICON hIcon;

// Total =(int) ExtractIcon( Form1->Handle, FileName.c_str(), -1);



Icon = new TIcon();

hIcon = ExtractIcon( Form1->Handle, FileName.c_str(), 0);

Icon->Handle=hIcon;



Icon->SaveToFile(TempFile);

Image1->Picture->LoadFromFile(TempFile);

}

其中:FileName,TempFile,Icon在其头文件中定义:AnsiString  TempFile,
FileName ; Ticon *Icon;

这样,你所选定的程序的第一个图标就在Image控件中显示了出来。本程序所用的是
Windows API ExtractIcon来获取图表的,因此它只能获取可执行文件的图标,如果想获
取任意文件的图标,那末你可以调用Windows API 的SHGetFileInfo函数来完成,
SHGetFileInfo所能完成的任务有很多,具体用法可参见Win32的帮助文件。

另还有完整的源程序,如有兴趣可参看一下,你可以在http://wbear.126.com
或http://members.tripod.co.uk/lsw处获得。

--
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.118]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店