如何用BCB获取应用图标

2012-11-01 11:23:20 · 作者: · 浏览: 487
首先启动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的帮助文件。