六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用C++ Builder取得應用程序圖標

[摘要]文/王斌  我們經常在網上看到有關提取圖標的共享軟件或免費軟件。喜歡編程的朋友們都在夢想自己能夠動手做一個!使用可視化編程利器C++Builder可使你制作這樣的軟件變得非常輕松。  建立工程文件 ...
文/王斌

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

  建立工程文件

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

  取得和顯示圖標

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

   void_fastcall TForm1::SpeedButton1Click(TObject

  Sender)

  {

   TListItemLst;

   if(OpenDialog1->Execute())

  //打開被提取圖標的文件

   {

   FileName=OpenDialog1->FileName;

   FileName=FileName.UpperCase();

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

  //產生和備選文件同名的Ico圖標文件名

   HICON hIcon; //定義抽取的圖標句柄

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

   //抽取圖標:-1表示抽取所有圖標并且將獲得的圖標總數存入變量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)+"號圖標";

   Lst->ImageIndex=i;

   }

   if(Total>0)

   {

   Icon->SaveToFile(TempFile);

  //將最后一個圖標存入文件

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

   }

   }

  }

  以下為退出按鈕設置

   void_fastcall TForm1::SpeedButton2Click(TObjectSender)

  {

   Close();

  }

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

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

  存儲圖標

  為了不影響整個界面的美觀,我們在Form上建立一個快捷選單,并在“存儲圖標”的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下的執行文件,大部分都是資源信息與應用代碼單獨存放的,從這些資源文件中抽取圖標信息只是很小的一個實例。如果要獲取更多的信息,就需要調用API函數SHGetFileInfo。有興趣的朋友可以用本文類似的思路進行更深一步的探討,我想,編寫一個漢化軟件并非難事。


主站蜘蛛池模板: 青草草在线观看免费视频 | 日本中文字幕在线看 | 欧美一级鲁丝片免费看 | 啪啪大秀| 中文字幕女教师julia视频 | 青青青免费观看在线视频高清 | 特级黄色淫片 | 欧美性视频一区二区三区 | 亚洲成a人片在线观看中文app | 欧美一区二区不卡视频 | 亚洲欧美在线综合一区二区三区 | 亚洲欧美日韩中文不卡 | 青青青青青在线视频播放 | 青娱乐啪啪 | 天天干天天干天天干天天干天天干 | 青娱乐在线观看 | 午夜免费视频网站 | 中文字幕在线观看第一页 | 中国国产一级毛片视频 | 婷婷久操 | 影音先锋男人资源站 | 伊人久久大香线蕉观看 | 亚洲男人天堂视频 | 青青草99热这里都是精品 | 特级做a爰片毛片免费看 | 最新国产精品精品视频 | 性生活视频欧美 | 伊人色综合久久天天人手人停 | 日韩精品一区二区三区乱码 | 在线观看日本视频 | 日韩色视| 日韩欧美色视频在线观看 | 伊人婷婷在线 | 青青青亚洲精品国产 | 五月婷婷丁香六月 | 视频一区 在线 | 人人揉人人添人人捏人人看 | 日韩网站免费 | 日韩中文字幕精品一区在线 | 亚洲国产成人久久综合一区77 | 夭天干天天做天天免费看 |