現在,網上有大量的有關圖標的共享軟件或免費軟件,而且很多也很好用,也方便。但是那畢竟是別人的,用起來總有些哪個,況且自己又喜歡編程,何不自己動手呢!說干就干,而且手頭上有可視化編成的利器――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的幫助文件。