用C++Builder获取应用程序图标 １３００２２ 刘四委 中科院长春应化所６－４
现在，网上有大量的有关图标的共享软件或免费软件，而且很多也很好用，也方便。但是那毕竟是别人的，用起来总有些哪个，况且自己又喜欢编程，何不自己动手呢！说干就干，而且手头上有可视化编成的利器――Ｃ++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的帮助文件。