在线看毛片视频-国产免费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>
  • 欧美在线一区视频| 男人添女人下部视频免费| 一区二区三区视频网| 干日本少妇首页| 可以看污的网站| 五月婷婷之综合激情| 久久99国产精品一区| 成熟了的熟妇毛茸茸| 黄页网站大全在线观看| 亚洲黄色av片| www.欧美日本| 国产91xxx| 一路向西2在线观看| 日本肉体xxxx裸体xxx免费| 男人添女人下部高潮视频在观看| 97人人爽人人| 你真棒插曲来救救我在线观看| www.日本一区| 白嫩少妇丰满一区二区| 三上悠亚久久精品| 欧美激情亚洲天堂| 女人色极品影院| 午夜啪啪福利视频| 亚洲成熟丰满熟妇高潮xxxxx| 国产人妻人伦精品| 99国产精品白浆在线观看免费| 在线免费av播放| 国产精品啪啪啪视频| 国产日韩欧美精品在线观看| 裸体裸乳免费看| 999在线观看| 在线观看国产一级片| 国产裸体免费无遮挡| 国产精品99久久免费黑人人妻| 一级日本黄色片| 秋霞在线一区二区| 91亚洲精品国产| 国产乱子伦精品视频| www.国产亚洲| 免费成人在线视频网站| 欧美日韩激情视频在线观看| www.射射射| 国产精品无码av无码| 91视频最新入口| 久久国产精品网| 在线观看污视频| 欧美国产综合在线| 男女午夜激情视频| 欧美一级视频在线| 成年在线观看视频| 亚洲精品无码久久久久久| 欧美视频第一区| 欧美亚洲国产成人| 日本特黄a级片| 日韩精品福利片午夜免费观看| 亚洲熟妇av一区二区三区漫画| www在线观看免费| 超碰在线97免费| 日本免费色视频| 国产精品69久久久| 国产网站免费在线观看| 性欧美在线视频| 777av视频| 浮妇高潮喷白浆视频| 无尽裸体动漫2d在线观看| 中文字幕の友人北条麻妃| 免费高清在线观看免费| 男人舔女人下面高潮视频| 欧美xxxxx在线视频| 400部精品国偷自产在线观看| 亚洲理论电影在线观看| 天堂视频免费看| 成人性免费视频| 中文字幕第88页| 成熟了的熟妇毛茸茸| 久久久一二三四| 亚洲色图 在线视频| 日韩国产成人无码av毛片| 免费av观看网址| 天堂社区在线视频| 欧美日韩激情视频在线观看| 浴室偷拍美女洗澡456在线| 欧美激情精品久久久久久小说| 国产爆乳无码一区二区麻豆| 三区视频在线观看| 亚洲日本黄色片| 永久免费的av网站| 一道本视频在线观看| 成人在线激情网| 成年人看的毛片| 国产日韩亚洲欧美在线| 嫩草影院中文字幕| 欧美一二三不卡| 国内少妇毛片视频| www.av91| 69堂免费视频| 激情综合在线观看| 国产精品va无码一区二区| 亚洲美免无码中文字幕在线| 男女日批视频在线观看| 岛国大片在线播放| 999在线观看视频| 那种视频在线观看| 国产男女在线观看| 波多野结衣av一区二区全免费观看 | 911福利视频| 性欧美在线视频| 日本高清xxxx| 日本午夜激情视频| 成人性做爰aaa片免费看不忠| 女人扒开屁股爽桶30分钟| 国产精品亚洲二区在线观看| 日本a√在线观看| 国产三级精品三级在线| 中文字幕精品在线播放| 国产综合中文字幕| 水蜜桃色314在线观看| 香蕉精品视频在线| 国产v片免费观看| 三级视频中文字幕| 99精品999| 波多野结衣家庭教师在线| 九一精品在线观看| 国产女主播av| 欧美伦理片在线看| 99亚洲国产精品| 亚洲视频在线a| 隔壁人妻偷人bd中字| 手机在线看福利| 成人免费毛片在线观看| 男人添女荫道口图片| 国产二级片在线观看| 亚洲xxx在线观看| 春日野结衣av| 欧美另类videosbestsex日本| 欧美韩国日本在线| 欧美极品少妇无套实战| 中文字幕第17页| 黄色免费观看视频网站 | 日本aa在线观看| 天堂av在线8| 国产精品无码专区av在线播放| www亚洲国产| 天天碰免费视频| 青草青青在线视频| 精品人妻人人做人人爽| caoporm在线视频| 超碰在线97免费| 日日噜噜夜夜狠狠久久丁香五月| 波多野结衣av一区二区全免费观看| 激情文学亚洲色图| 中文字幕第80页| 在线免费av播放| 99九九99九九九99九他书对| 九九热在线免费| 性chinese极品按摩| 日韩一级理论片| 亚洲人辣妹窥探嘘嘘| 免费国产成人av| 亚洲熟妇无码另类久久久| 老司机午夜性大片| 亚洲自拍第三页| 天天操狠狠操夜夜操| 最新免费av网址| 日日干夜夜操s8| 伊人五月天婷婷| 桥本有菜av在线| 97超碰人人澡| 成年人三级黄色片| 人人干视频在线| 超碰超碰在线观看| 高清无码视频直接看| 日本888xxxx| www.亚洲成人网| 午夜精品免费看| 亚洲不卡中文字幕无码| 成人免费黄色av| 一本久道综合色婷婷五月| 永久免费看av| 婷婷激情5月天| 亚洲最大综合网| 97久久国产亚洲精品超碰热| 爱情岛论坛亚洲首页入口章节| 免费网站在线观看视频| 污视频网址在线观看| 免费高清在线观看免费| 国产一二三四五| 欧美一级视频在线| caoporn超碰97| 日韩精品xxxx| 草草视频在线免费观看| 日韩高清第一页| 欧美三级午夜理伦三级富婆| 国产av无码专区亚洲精品| 精品无码国产一区二区三区av| 懂色av一区二区三区四区五区| 中文字幕 欧美日韩| 亚洲无吗一区二区三区| www.xxx亚洲| 成人免费视频久久|