日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

用C++ Builder取得應(yīng)用程序圖標(biāo)

用C++ Builder取得應(yīng)用程序圖標(biāo)

更新時間:2022-05-05 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

文/王斌

  我們經(jīng)常在網(wǎng)上看到有關(guān)提取圖標(biāo)的共享軟件或免費軟件。喜歡編程的朋友們都在夢想自己能夠動手做一個!使用可視化編程利器C++Builder可使你制作這樣的軟件變得非常輕松。

  建立工程文件

  
  首先啟動C++Builder,新建一工程,在窗體上放置兩個控件:“抽取”按鈕SpeedButton1、“退出”按鈕SpeedButton2。設(shè)一個ListView控件用來瀏覽抽取的圖表信息、一個Image控件用來顯示當(dāng)前的圖標(biāo)信息和一個OpenDialog控件用來打開被選文件,它們的名稱均不必改動。為了美觀,讀者還可以根據(jù)需要增加其它控件,做適當(dāng)?shù)臐櫳?br>
  取得和顯示圖標(biāo)

  雙擊SpeedButton控件,在Click事件中寫如下代碼:

   void_fastcall TForm1::SpeedButton1Click(TObject

  Sender)

  {

   TListItemLst;

   if(OpenDialog1->Execute())

  //打開被提取圖標(biāo)的文件

   {

   FileName=OpenDialog1->FileName;

   FileName=FileName.UpperCase();

   TempFile=FileName.SubString(1,FileName.AnsiPos("."))+"ICO";

  //產(chǎn)生和備選文件同名的Ico圖標(biāo)文件名

   HICON hIcon; //定義抽取的圖標(biāo)句柄

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

   //抽取圖標(biāo):-1表示抽取所有圖標(biāo)并且將獲得的圖標(biāo)總數(shù)存入變量Total

   ListView1->Items->Clear();

   ImageList1->Clear();

   for(int i=0;i {

   Icon = new TIcon();

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

   Icon->Handle=hIcon;

   ImageList1->AddIcon(Icon);

   Lst=ListView1->Items->Add();

   Lst->Caption="第"+IntToStr(i)+"號圖標(biāo)";

   Lst->ImageIndex=i;

   }

   if(Total>0)

   {

   Icon->SaveToFile(TempFile);

  //將最后一個圖標(biāo)存入文件

   Image1->Picture->LoadFromFile(TempFile); //將存入文件的圖標(biāo)顯示

   }

   }

  }

  以下為退出按鈕設(shè)置

   void_fastcall TForm1::SpeedButton2Click(TObjectSender)

  {

   Close();

  }

  在編輯文檔的頭文件中定義:AnsiString TempFile,FileName;TiconIcon;運行程序時,你所選定的程序的全部圖標(biāo)就在ListView控件中顯示出來,最后一個圖標(biāo)在Image控件中顯示出來,此時如果在ListView中單擊圖標(biāo),相應(yīng)的信息也將在Image控件中顯示。

  經(jīng)過以上的操作,被選文件的圖標(biāo)信息就被顯示出來了。下面,我們討論如何存儲被選定的圖標(biāo)。

  存儲圖標(biāo)

  為了不影響整個界面的美觀,我們在Form上建立一個快捷選單,并在“存儲圖標(biāo)”的Click事件中書寫如下代碼:

  void_fastcall TForm1::N1Click(TObjectSender)

  {

   if (InputQuery("提示信息", "存儲文件名:", PutFile)) //彈出輸入對話框

   {

   if (PutFile.Length()>0)

   {

   if(PutFile.AnsiPos(".")<=0)

   {

   PutFile=PutFile+".Ico" ;

   }

   if(ListView1->Selected!=NULL)

   {

   HICON hIcon;

   Icon = new TIcon();

  hIcon=ExtractIcon(Form1->Handle,FileName.c_str(),ListView1->Selected->Index);

   Icon->Handle=hIcon;

   Icon->SaveToFile(PutFile);

   Image1->Picture->LoadFromFile(PutFile);

   delete Icon;

   }

   }

   }

  }

  Windows下的執(zhí)行文件,大部分都是資源信息與應(yīng)用代碼單獨存放的,從這些資源文件中抽取圖標(biāo)信息只是很小的一個實例。如果要獲取更多的信息,就需要調(diào)用API函數(shù)SHGetFileInfo。有興趣的朋友可以用本文類似的思路進行更深一步的探討,我想,編寫一個漢化軟件并非難事。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 天天干天天在线 | 久久伊人精品 | 成年女人午夜免费视频 | 亚洲日日操 | 亚洲一区日韩一区欧美一区a | 国产欧美日韩网站 | 成年性午夜免费视频网站不卡 | 青青青青青青青青在线观看 | 日韩毛片欧美一级a网站 | 久久中文字幕综合婷婷 | 国产日韩综合一区在线观看 | 欧美中文字幕 | 在线免费a视频 | 久久丁香视频 | 天天艹日日干 | 国产成人啪精品视频免费软件 | 手机看片福利盒子久久 | 日本人与黑人做爰巨大和娇小 | 亚洲精品中文字幕不卡在线 | 免费人成网站7777视频 | 青青热久久综合网伊人 | 欧美一级毛片欧美大尺度一级毛片 | 国产精品极品美女自在线 | 黄网站色视频免费看无下截 | 青青草论坛 | 免费看日韩欧美一级毛片 | 91亚洲国产成人精品性色 | 日韩精品一区二区三区国语自制 | 国产麻豆91欧美一区二区 | 亚洲欧美日韩国产制服另类 | 日本啪啪片| 亚洲精品香蕉一区二区在线观看 | 欧美在线视频二区 | 99 久久99久久精品免观看 | 在线精品免费观看综合 | 性视频一区 | 欧美激情网址 | 综合激情五月婷婷 | 四虎最新网 | 97在线免费观看视频 | 视频成人永久免费看 |