首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

C++Builder 取得應用程式圖示:ExtractIcon 與 SHGetFileInfo 兩法

     編輯:VC 教學

基本需求

從可執行檔(.exe/.dll)提取第一個圖示並顯示於 TImage。

方法一:ExtractIcon(僅限可執行檔)

AnsiString FileName, TempFile;
TIcon *Icon;

if (OpenDialog1->Execute()) {
    FileName = OpenDialog1->FileName;
    HICON hIcon = ExtractIcon(Form1->Handle, FileName.c_str(), 0); // 索引 0 為第一個圖示
    Icon = new TIcon();
    Icon->Handle = hIcon;
    Icon->SaveToFile(TempFile); // 存成暫存 .ico
    Image1->Picture->LoadFromFile(TempFile);
}

需包含 ShellAPI.h,專案連結 shell32.lib。

方法二:SHGetFileInfo(通用,支援任意檔案關聯圖示)

SHFILEINFO sfi;
SHGetFileInfo(FileName.c_str(), 0, &sfi, sizeof(sfi), SHGFI_ICON | SHGFI_LARGEICON);
// sfi.hIcon 即為大圖示句柄,小圖示用 SHGFI_SMALLICON
// 同樣可指派給 TIcon->Handle 並顯示

SHGetFileInfo 功能更強,可取得檔案類型描述、系統圖示索引等,參考 Win32 SDK 文件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved