• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    如何向CImageList中加入位圖文件

    發布: 2007-7-14 21:11 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 25次 | 進入軟件測試論壇討論

    領測軟件測試網 在MFC中CImageList類封裝了圖象列表控件的功能,圖象列表控件是相同大小圖象的一個集合,用于應用程序中大規模圖標的存儲,該控件是不可見控件,通常與其它控件一起使用,來為其它控件提供圖標資源。圖象的每個集合中均以0為圖象索引基數,可以把這些圖標看成是以數組方式存儲的,圖像列表通常由大圖標或位圖構成,其中包含位圖模式,實際上,所有的在同一個圖象列表中的圖標都被存儲在一個屏幕設備的位圖中。

    通常向CImageList對象中添加圖像元素的方法是:首先把圖標或位圖調入資源文件中,然后調用CImageList:Add方法加入到圖象列表控件中,將位圖裝入資源導致可執行文件增大,不利于軟件發行,而且只能使用資源中有限的位圖,無法選取其它位圖。要彌補使用資源位圖的不足,就必須直接使用BMP位圖文件。

    使用下列代碼即可實現:

    HBITMAP hBitmap;

    CBitmap *pBitmap;

    CImageList *pImageList;

    pImageList=new CImageList;

    pImageList->Create (32,32,ILC_COLOR4,5,2);

    pBitmap=new  CBitmap;

    hBitmap=(HBITMAP)LoadImage(NULL,FilePathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//FilePathName 是位圖文件完整路徑字符串

    pBitmap->Attach (hBitmap);

    pImageList->Add (pBitmap,RGB(0,0,0));

    下面結合一個實例詳細說明的用法:

    例程解析:

    例程基于一個對話框,單擊對話框中的‘添加bmp’按鈕彈出文件選擇框,選擇一個bmp文件,即可把選種bmp文件加入到列表控件中。在MFC中,CLIstCtrl類封裝了列表控件,主要用來以各種方式顯示一組數據記錄供用戶進行各種操作,列表中的記錄可以包括多個數據項,也可以包括表示數據內容的大小圖標,用來表示數據記錄的各種屬性,Windows資源管理器的右側框架就是一個非常典型的列表控件。

          新建MFC AppWiazrd[exe]工程,工程名稱ImageListAddBmp,點OK,選中Dialog based 點下一步,剩下的幾步用缺省值,一直按下一步直到完成,工程建立完畢。按以下步驟設置幾個變量,填寫事件代碼:

    1. 在IDD_IMAGELISTADDBMP_DIALOG對話框中加入ClistCtrl控件和一個按紐,按紐Caption為“添加bmp”。

    2. 使用類向導添加CtrlList控件變量m_ListCtrl。

    3. 在CimageListAddBmpDlg類中添加下面兩個公用變量:
    int index;
    CImageList *pImageList;

    4. 在BOOL CImageListAddBmpDlg::OnInitDialog()初始化函數中,
    // TODO: Add extra initialization here語句后面添加以下代碼
      index=0;
      pImageList=new CImageList;
      pImageList->Create (32,32,ILC_COLOR4,5,2);
      m_ListCtrl.SetImageList (pImageList,LVSIL_NORMAL );

    5. 在IDD_IMAGELISTADDBMP_DIALOG對話框中雙擊‘添加bmp’按鈕,加入Onbutton1單擊事件代碼:
    void CImageListAddBmpDlg::OnButton1()
    {
    // TODO: Add your control notification handler code here
      CString  FilePathName,FileName;
    CFileDialog dlg(TRUE);///TRUE為OPEN對話框,FALSE為SAVE AS對話框
    if(dlg.DoModal()==IDOK)
      {
        FilePathName=dlg.GetPathName();
        HBITMAP hBitmap;
        CBitmap *pBitmap;
        pBitmap=new CBitmap;
      hBitmap=(HBITMAP)LoadImage(NULL,FilePathName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
        pBitmap->Attach (hBitmap);
        pImageList->Add (pBitmap,RGB(0,0,0));
        FileName=dlg.GetFileName ();
        m_ListCtrl.InsertItem (index,FileName,index);
        index++;
      }
    }

    到這里你可以編譯運行了,在VC6.o下編譯通過。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>