在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

如何提取并保存圖標資源

如何提取并保存圖標資源

更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

作者:徐景周

下載示例源碼(http://www.csdn.net/cnshare/soft/9/9199.shtm)

     當你想要使用別的應用程序中的漂亮圖標時,該怎么辦呢?也許就會用到一些圖標提取工具吧!那么,你知道它們是怎么實現的,想不想自己動手也做一個適合自己的圖標提取工具呢?下面,就讓我用我以前做過的一個工具<輕輕松松抓圖標>來告訴你吧!它可以提取各種文件中的圖標資源,并可將其保存為圖標(ICO)、位圖(BMP)兩種格式。程序運行后界面如下:

在上面的例程中,我整合出一個圖標類CIcons和與之相配的一個位圖類CDib,其中包括Icons.h、Icons.cpp、Dib.h和Dib.cpp四個文件。在你的工程中直接加入這四個文件后,調用其類涵數,既可做出你自己的圖標工具來。

下面讓我們來看看如何來具體用它們來實現:

1、提取并顯示出圖標到左側列表框中。

代碼實現如下:

//讀取各種資源內部圖標并顯示在左側列表框中

void CIconSnapDlg::OnOK()

{    

CFileDialog fileDialog( TRUE,"*.ICO",NULL,NULL,"資源文件(*.ICO,*.BMP,*.EXE,*.DLL,*.ICL)|*.ICO;*.BMP;*.EXE;*.DLL;*.ICL||");

if (fileDialog.DoModal() == IDOK)

{       

     szOpenFileName=fileDialog.GetPathName();    

        szOpenFileExtName= fileDialog.GetFileExt ();

     szOpenFileExtName.MakeLower ();



     m_List.ResetContent (); //選清空左側圖標列表框



     //讀取并顯示ICON文件

        if(szOpenFileExtName =="ico")

     {

         lpIR=pIcons->ReadIconFromICOFile (szOpenFileName);      

         HICON hIcon;

         hIcon=ExtractIcon(AfxGetInstanceHandle(),szOpenFileName,0);

            if(hIcon!=NULL)

             m_List.AddString (szOpenFileName);

         CStatic* pStatic = (CStatic*) GetDlgItem(IDC_ICONS);

        pStatic->SetIcon (hIcon);

     }

     else if(szOpenFileExtName == "bmp") //讀取并顯示BMP文件

     {

            pIcons->IconImageFromBMPFile (szOpenFileName,&lpIR->IconImages[0],TRUE);

         HICON hIcon;

         hIcon=pIcons->MakeIconFromResource (&lpIR->IconImages [0]);

         if(hIcon!=NULL)

             m_List.AddString (szOpenFileName);

            CStatic* pStatic = (CStatic*) GetDlgItem(IDC_ICONS);

        pStatic->SetIcon (hIcon);

     }

        else //讀取并顯示EXE、DLL等資源文件

     {

        HINSTANCE  hLibrary;



        // Load the DLL/EXE - NOTE: must be a 32bit EXE/DLL for this to work

        if( (hLibrary = LoadLibraryEx( szOpenFileName, NULL, LOAD_LIBRARY_AS_DATAFILE )) == NULL )

        {

         // Failed to load - abort

         MessageBox( szOpenFileName+ "文件載入錯誤,必須是WIN32的文件!", "錯誤", MB_OK );

         return;

        }

        // Store the info

        EDII.szFileName =szOpenFileName;

        EDII.hInstance = hLibrary;

    

        // Fill in the listbox with the icons available

        if( ! EnumResourceNames( EDII.hInstance, RT_GROUP_ICON, (ENUMRESNAMEPROC )MyEnumProcedure, (LPARAM)GetSafeHwnd()) )

        {

         MessageBox( "列舉圖標資源名時出錯!", "錯誤", MB_OK );

         return;

        }

     }



     m_List.SetCurSel (0);

     if( m_List.GetCount()  == 0 )

     {

         MessageBox( "此文件中沒有圖標資源!", "錯誤", MB_OK );

         //無圖標資源,置保存和復制按鈕為無效狀態

         m_Copy.EnableWindow (false);

         m_SaveAs.EnableWindow (false);

         return;

     }

        //有圖標資源,置保存和復制按鈕為有效狀態

     m_Copy.EnableWindow (true);

     m_SaveAs.EnableWindow (true);



     //刷新調用OnPaint來顯示圖標

     InvalidateRect(NULL,TRUE);

}   

}

在OnPaint()涵數中加入下面代碼用來具體顯示提取出的圖標或位圖資源。

//根據左側圖標列表,利用OnPaint()來更新右側相應圖標

LPTSTR lpIconID;

HICON hIcon;

if((lpIconID=(LPTSTR)m_List.GetItemData(m_List.GetCurSel()))!=(LPTSTR)LB_ERR )

{

if(szOpenFileExtName=="exe"||szOpenFileExtName=="dll"||szOpenFileExtName=="icl")

{

       hIcon=pIcons->GetIconFromInstance(EDII.hInstance,lpIconID);

   CStatic* pStatic = (CStatic*) GetDlgItem(IDC_ICONS);

   pStatic->SetIcon (hIcon);

}

}

2、如何將提取出的圖標資源保存為Ico或Bmp格式。

//保存圖標資源為ICO或BMP格式文件

void CIconSnapDlg::OnButtonSaveas()

{

    LPTSTR lpIconID;



    CFileDialog fileDialog( FALSE,"*.ICO",NULL,NULL,"圖標文件(*.ICO)|*.ICO|位圖文件(*.BMP)|*.BMP||");

    if (fileDialog.DoModal() == IDOK)

    {

        szSaveFileName=fileDialog.GetPathName();    

        szSaveFileExtName= fileDialog.GetFileExt ();

        szSaveFileExtName.MakeLower ();



        if(szOpenFileExtName=="exe"||szOpenFileExtName=="dll"||szOpenFileExtName=="icl")

           if((lpIconID=(LPTSTR)m_List.GetItemData (m_List.GetCurSel()))!= (LPTSTR)LB_ERR)

                lpIR=pIcons->ReadIconFromEXEFile (szOpenFileName,lpIconID);

        if(szSaveFileExtName=="bmp")

        {

          if(lpIR!=NULL && m_List.GetCount ()>0)

          {

            BeginWaitCursor();

            pIcons->IconImageToBMPFile (szSaveFileName,&lpIR->IconImages [0]);

            EndWaitCursor();

          }

          else

            MessageBox( "沒有可保存的圖標資源!", "錯誤", MB_OK );

        }

        else if(szSaveFileExtName=="ico")

        {

          if(lpIR!=NULL && m_List.GetCount ()>0)

          {

            BeginWaitCursor();

            pIcons->WriteIconToICOFile (lpIR,szSaveFileName);

            EndWaitCursor();

          }

          else

            MessageBox( "沒有可保存的圖標資源!", "錯誤", MB_OK );

        }

    }

}

以上代碼的詳細實現,請在下載后源碼后,仔細參看既可。



聯系方式:

地址:陜西省西安市勞動路2號院六單元

郵編:710082

作者EMAIL:jingzhou_xu@163.net

未來工作室(Future Studio)

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

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 亚洲精品第三页| 美女福利视频在线| 欧美成人xxxxx| 青青青在线观看视频| 污色网站在线观看| 成年网站在线免费观看| 在线观看av的网址| av在线网站免费观看| 国产成年人在线观看| 国产一区二区在线免费播放| 成人在线观看你懂的| 影音先锋成人资源网站| www,av在线| 91av视频免费观看| 可以看毛片的网址| 精品视频在线观看一区二区| 91免费网站视频| 日本中文字幕在线不卡| 加勒比av中文字幕| 天天操狠狠操夜夜操| 日本人69视频| 久久人人爽av| 想看黄色一级片| 亚洲综合激情五月| 天天想你在线观看完整版电影免费| 人人干人人干人人| 四季av一区二区三区| 岳毛多又紧做起爽| 久久久999视频| 18禁男女爽爽爽午夜网站免费| 日本999视频| 欧美牲交a欧美牲交aⅴ免费下载| 国产精品宾馆在线精品酒店| 99久久久无码国产精品6| 国产一级片黄色| 午夜av中文字幕| 午夜久久久久久久久久久| 成人免费a级片| 国产人妻777人伦精品hd| 国产1区2区在线| 成年人网站av| 欧美 日韩 亚洲 一区| 国产一区亚洲二区三区| 三区视频在线观看| 欧洲精品在线播放| 韩国日本美国免费毛片| 在线观看视频黄色| 18禁免费无码无遮挡不卡网站 | 九九热视频免费| www.亚洲高清| 日本手机在线视频| 日本成人中文字幕在线| 欧美国产在线一区| 狠狠热免费视频| 又大又硬又爽免费视频| 成人污网站在线观看| 国产一线二线三线在线观看| 天天操精品视频| 欧美一级黄色片视频| 好吊色这里只有精品| 丝袜老师办公室里做好紧好爽| 熟女视频一区二区三区| 午夜肉伦伦影院| 黄色一级片黄色| 日韩视频在线观看一区二区三区| 一本—道久久a久久精品蜜桃| 日韩在线视频在线观看| japanese在线播放| 久久久久久久高清| 91高清国产视频| 欧美日韩怡红院| 国产一级爱c视频| 国产91在线亚洲| 欧美xxxxxbbbbb| 亚洲人视频在线| 天天干天天操天天做| 日本五级黄色片| 亚洲熟妇无码av在线播放| www亚洲国产| 超碰在线资源站| 亚洲 欧洲 日韩| 亚洲老女人av| 自拍偷拍21p| 一级黄色片国产| 日本一本在线视频| 精品一区二区三区毛片| 日韩av资源在线| 午夜激情福利在线| www.天天射.com| 在线观看国产一级片| 手机免费av片| 久久久一二三四| 国产精品免费看久久久无码| 男人草女人视频| 缅甸午夜性猛交xxxx| 国产情侣av自拍| 激情五月亚洲色图| 天天影视色综合| 中文字幕精品在线播放| 国产freexxxx性播放麻豆| 国产男女免费视频| 国产精品久久久久7777| av日韩一区二区三区| 免费无码国产v片在线观看| 成人黄色一区二区| 91女神在线观看| 看全色黄大色大片| heyzo国产| 中文字幕第66页| www.99热这里只有精品| 波多野结衣综合网| 99热这里只有精品在线播放| 潘金莲一级淫片aaaaa免费看| 熟妇人妻无乱码中文字幕真矢织江| 日本免费黄色小视频 | 青娱乐国产精品视频| 欧美变态另类刺激| 久久人妻无码一区二区| 天天色综合社区| 亚洲人成色77777| 免费国产a级片| 东北少妇不带套对白| youjizz.com亚洲| 黄色小视频免费网站| 不卡av免费在线| 免费在线观看毛片网站| 国产老熟妇精品观看| 国产在线观看欧美| 喜爱夜蒲2在线| 天天做天天爱天天高潮| 欧洲美女亚洲激情| 欧美大片久久久| 天美一区二区三区| 日本特黄在线观看| 1314成人网| 日本一道在线观看| www.国产亚洲| 日韩五码在线观看| 亚洲精品无码久久久久久| 国产综合免费视频| 国产一区二区在线免费播放| 中文字幕欧美人妻精品一区| 99视频免费播放| av在线免费看片| 成人av在线播放观看| 日韩在线综合网| 欧美一级片中文字幕| 天天色综合社区| 91精品视频国产| 99热久久这里只有精品| 欧美视频免费看欧美视频| 欧在线一二三四区| wwwwwxxxx日本| 亚洲激情免费视频| 男人天堂999| 亚洲高清av一区二区三区| 欧美日韩午夜爽爽| 欧美一级黄色影院| 超碰在线超碰在线| 国模吧无码一区二区三区| www.亚洲天堂网| www.午夜色| 国产一级片黄色| 成人黄色片免费| 一级特黄性色生活片| 好吊色这里只有精品| 麻豆av免费在线| www.日本三级| 午夜两性免费视频| 欧美日本视频在线观看| 日本一二三四区视频| 国产精品久久久久9999爆乳| 欧美大尺度做爰床戏| 欧美大黑帍在线播放| 色网站在线视频| 免费裸体美女网站| 波多野结衣av一区二区全免费观看| 国产成人久久婷婷精品流白浆| 天堂v在线视频| 欧美男女交配视频| 日本毛片在线免费观看| 亚洲黄色网址在线观看| 国产又大又黄又粗又爽| 天堂…中文在线最新版在线| 污污视频在线免费| 国产精品一区二区小说| 精品久久久久久久免费人妻| 国产3p露脸普通话对白| 91视频成人免费| 日韩欧美色视频| av免费一区二区| 在线观看免费污视频| 亚洲五月天综合| 少妇激情一区二区三区| 妺妺窝人体色www在线观看| 波多野结衣乳巨码无在线| 91丨porny丨探花| 久久久久99精品成人片| 欧美人与动牲交xxxxbbbb| 国产av不卡一区二区|