国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

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

如何提取并保存圖標資源

如何提取并保存圖標資源

更新時間: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)

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

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

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

        午夜私人影院久久久久| 欧美成人欧美edvon| 欧美性大战久久久| 亚洲精品国产第一综合99久久| 99久久久无码国产精品| 亚洲桃色在线一区| 欧美日韩一卡二卡三卡| 日韩中文字幕不卡| 精品国产污污免费网站入口| 国产久卡久卡久卡久卡视频精品| 国产亚洲1区2区3区| 成人一区二区视频| 亚洲欧美日韩一区二区| 欧美日韩中文字幕一区| 蜜臀av性久久久久蜜臀aⅴ| 久久久久一区二区三区四区| 99re视频这里只有精品| 日韩高清一区二区| 国产精品欧美一级免费| 91麻豆精品国产91久久久久久久久| 美女在线观看视频一区二区| 亚洲欧洲成人精品av97| 777午夜精品免费视频| 国产iv一区二区三区| 亚洲五码中文字幕| 国产精品欧美一区二区三区| 91精品国产综合久久国产大片| 国产成人一区在线| 日韩av高清在线观看| 亚洲欧洲日韩在线| 国产日韩欧美不卡在线| 日韩精品综合一本久道在线视频| 色噜噜狠狠色综合中国| 国产xxx精品视频大全| 免费成人在线影院| 午夜电影网亚洲视频| 亚洲欧洲中文日韩久久av乱码| 日韩欧美一二区| 欧美午夜电影一区| 9人人澡人人爽人人精品| 国产一区二区不卡老阿姨| 午夜精品福利一区二区蜜股av| 中文字幕一区二区三区蜜月| 久久久精品人体av艺术| 精品久久五月天| 337p亚洲精品色噜噜| 欧美日韩在线亚洲一区蜜芽| 色呦呦国产精品| 91亚洲资源网| 91免费国产在线| 一本一道久久a久久精品| 成人性生交大片免费看在线播放| 九九国产精品视频| 精品一区二区三区不卡| 精油按摩中文字幕久久| 久久超碰97中文字幕| 久久国产剧场电影| 狠狠色综合日日| 国产精品综合在线视频| 国产精品亚洲一区二区三区在线| 精品一区二区三区视频在线观看 | 亚洲天堂av一区| 欧美激情综合在线| 日韩一区二区在线看| 午夜精品久久久久久久久久久| 欧美三电影在线| 91久久精品日日躁夜夜躁欧美| 肉丝袜脚交视频一区二区| 亚洲最大色网站| 亚洲午夜久久久久久久久久久| 亚洲黄网站在线观看| 一区二区三区中文字幕| 日韩在线卡一卡二| 另类综合日韩欧美亚洲| 国产风韵犹存在线视精品| 国产成人无遮挡在线视频| av在线免费不卡| 欧美午夜不卡视频| 日韩午夜精品视频| 国产精品视频九色porn| 曰韩精品一区二区| 久久国产精品99精品国产| 国产精品1区二区.| 91高清视频在线| 精品成a人在线观看| 久久毛片高清国产| 亚洲欧洲制服丝袜| 亚洲bt欧美bt精品| 国产一区二区三区国产| 色88888久久久久久影院野外| 欧美福利视频导航| 日本一区二区三区四区| 亚洲国产欧美在线人成| 久久se这里有精品| 91美女视频网站| 欧美精品一区二区蜜臀亚洲| 亚洲激情成人在线| 高清成人在线观看| 91精品国产综合久久小美女| 国产精品国产三级国产aⅴ原创 | 色婷婷激情久久| 亚洲精品一线二线三线| 亚洲妇女屁股眼交7| 韩国v欧美v亚洲v日本v| 色94色欧美sute亚洲线路二| 国产欧美日韩综合精品一区二区| 天堂av在线一区| 97久久超碰国产精品| 久久久精品国产免大香伊| 亚洲第一福利一区| 91网上在线视频| 国产欧美日韩麻豆91| 免费久久99精品国产| 欧美日韩国产一级二级| 亚洲欧美日韩国产综合| 国产 日韩 欧美大片| 日韩精品中午字幕| 日韩国产在线观看一区| 日本国产一区二区| 成人免费一区二区三区在线观看 | 6080国产精品一区二区| 一区二区三区自拍| 91年精品国产| 亚洲人成网站影音先锋播放| 处破女av一区二区| 欧美激情一二三区| 国产成人av影院| 26uuu精品一区二区三区四区在线| 午夜精品久久一牛影视| 欧美亚洲国产一区二区三区va| 最新日韩av在线| 国产+成+人+亚洲欧洲自线| 国产亚洲综合色| 成人午夜电影网站| 国产精品伦理一区二区| 懂色av一区二区三区免费观看| 久久久国产综合精品女国产盗摄| 国产一区在线精品| 国产精品五月天| av一区二区久久| 亚洲人成在线播放网站岛国| 色婷婷av久久久久久久| 亚洲一区在线视频观看| 欧美老女人在线| 久久国产剧场电影| 国产精品网友自拍| 在线观看亚洲a| 日韩一区精品字幕| 精品91自产拍在线观看一区| 国产98色在线|日韩| 亚洲人成影院在线观看| 欧美精品第1页| 国产高清久久久| 一区二区三区国产| 日韩一级二级三级精品视频| 国产精品123| 伊人一区二区三区| 日韩精品一区二区三区中文精品| 国产成人亚洲综合a∨婷婷 | 久久综合九色综合久久久精品综合| 国产一区在线视频| 一区二区三区欧美久久| 精品成人在线观看| 色屁屁一区二区| 韩国一区二区三区| 亚洲精品你懂的| 欧美精品一区二区三区蜜桃| 色猫猫国产区一区二在线视频| 免费精品视频最新在线| 国产精品国模大尺度视频| 在线不卡欧美精品一区二区三区| 国产乱人伦偷精品视频不卡| 亚洲精品国产第一综合99久久| 精品国产一区二区三区久久影院| 色综合夜色一区| 久久成人免费电影| 亚洲国产精品久久人人爱| 国产亚洲一区字幕| 日韩久久久久久| 欧美性猛片aaaaaaa做受| 成人免费视频播放| 久久99国产精品久久| 亚洲小说春色综合另类电影| 国产视频一区二区在线观看| 正在播放亚洲一区| 欧美这里有精品| av网站一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 5566中文字幕一区二区电影| 国产v综合v亚洲欧| 久久国内精品视频| 91在线视频网址| 亚洲欧美激情插 | 蜜臀av亚洲一区中文字幕| 国产精品每日更新在线播放网址| 欧美一区二区三区免费视频| 欧美性xxxxxx少妇| 91同城在线观看| 99re在线视频这里只有精品| 国产剧情一区二区|