• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

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

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

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

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

        文/王斌

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

          建立工程文件

          
          首先啟動(dòng)C++Builder,新建一工程,在窗體上放置兩個(gè)控件:“抽取”按鈕SpeedButton1、“退出”按鈕SpeedButton2。設(shè)一個(gè)ListView控件用來瀏覽抽取的圖表信息、一個(gè)Image控件用來顯示當(dāng)前的圖標(biāo)信息和一個(gè)OpenDialog控件用來打開被選文件,它們的名稱均不必改動(dòng)。為了美觀,讀者還可以根據(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)+"號(hào)圖標(biāo)";

           Lst->ImageIndex=i;

           }

           if(Total>0)

           {

           Icon->SaveToFile(TempFile);

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

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

           }

           }

          }

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

           void_fastcall TForm1::SpeedButton2Click(TObjectSender)

          {

           Close();

          }

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

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

          存儲(chǔ)圖標(biāo)

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

          void_fastcall TForm1::N1Click(TObjectSender)

          {

           if (InputQuery("提示信息", "存儲(chǔ)文件名:", 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)用代碼單獨(dú)存放的,從這些資源文件中抽取圖標(biāo)信息只是很小的一個(gè)實(shí)例。如果要獲取更多的信息,就需要調(diào)用API函數(shù)SHGetFileInfo。有興趣的朋友可以用本文類似的思路進(jìn)行更深一步的探討,我想,編寫一個(gè)漢化軟件并非難事。

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

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 日韩一级片免费观看| 一本色道久久综合亚洲精品蜜桃冫| 一级特黄录像视频免费| 日韩精品免费电影| 国产一区二区三区亚洲综合| 国产一级理论免费版| 男人免费视频一区二区在线观看 | 国产亚洲精品资在线| 日本永久免费a∨在线视频| 亚洲天堂免费在线视频| 久久国产精品免费一区二区三区| 国产性爱在线观看亚洲黄色一级片| 成人午夜影视全部免费看| 奇米影视亚洲春色| 久久午夜无码免费| 亚洲一区二区三区深夜天堂| 在线观看人成网站深夜免费| 黄色一级视频免费观看| 久久精品国产亚洲AV麻豆王友容| 亚洲免费黄色网址| 亚洲av永久无码精品秋霞电影秋 | 免费激情视频网站| 免费观看亚洲人成网站| 久久精品国产69国产精品亚洲| 日本免费污片中国特一级| 亚洲伊人久久大香线蕉| 国产成人涩涩涩视频在线观看免费| 国产精品福利片免费看| 亚洲电影中文字幕| 久久电影网午夜鲁丝片免费| 日韩在线视频播放免费视频完整版 | 国产真人无码作爱视频免费| 亚洲精品视频观看| 女人被弄到高潮的免费视频| japanese色国产在线看免费| 亚洲视频2020| 免费在线精品视频| 亚洲免费一级视频| 人妻18毛片a级毛片免费看| 亚洲综合激情六月婷婷在线观看| 国产乱子伦精品免费无码专区 |