• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            圖像列表控制(CImageList)是相同大小圖像的一個集合,每個集合中均以0為圖像的索引序號基數(shù),圖像列表通常由大圖標或位圖構(gòu)成,其中包含透明位圖模式。可以利用WINDOWS32位應用程序接口函數(shù)API來繪制、建立和刪除圖像,并能實現(xiàn)增加、刪除、替換和拖動圖像等操作。圖像列表控制提供了控制圖像列表的基本方法,這些方法在WINDOWS95及以后版本才能實現(xiàn)。

              (一)圖像控制的對象結(jié)構(gòu)

              1、圖像控制的數(shù)據(jù)成員

               m_hImageList 連接圖像對象的控制句柄

              2、圖像控制的建立方法

               CimageList&imageList建立圖像控制對象結(jié)構(gòu)

               Create 初始化圖像列表并綁定對象

              圖像控制的建立方法如下:

            BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );

            BOOL Create( UINT nBitmapID, int cx, int nGrow, COLORREF crMask );

            BOOL Create( LPCTSTR lpszBitmapID, int cx, int nGrow, COLORREF crMask );

            BOOL Create( CImageList& imagelist1, int nImage1, CImageList& imagelist2

            ,int nImage2,int dx, int dy );


              其中各項參數(shù)的含義為:cx定義圖像的寬度,單位為象素;cy定義圖象的高度,單位為象素;nFlags確定建立圖像列表的類型,可以是以下值的組合:ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、ILC_COLORDDB和ILC_MASK;nInitial用來確定圖像列表包含的圖像數(shù)量;nGrow用來確定圖像列表可控制的圖像數(shù)量。

               NbitmapID 用來確定圖像列表聯(lián)系的位圖標志值;crMask表示顏色屏蔽位;

               LpszBitmapID 用來確定包含位圖資源的標識串;

              imagelist1 指向圖像列表控制對象的一個指針;nImage1圖像列表1中包含的圖像數(shù) 量;imagelist2指向圖像列表控制對象的一個指針;nImage2圖像列表2中包含的圖像數(shù)量;dx表示以象素為單位的圖像寬度;dy表示以象素為單位的圖像高度。

              同樣,圖像控制的建立也包括兩個步驟,首先建立圖像列表結(jié)構(gòu),然后建立圖像列表控制。

              3、圖像控制的屬性類

              圖像控制的屬性類包括返回m_hImageList.控制句柄GetSafeHandle、取得圖像列表中的圖像數(shù)量GetImageCount、設(shè)置圖像列表的背景顏色SetBkColor、取得圖像列表的背景顏色SetBkColor和取得圖像的有關(guān)信息SetBkColor。

              4、圖像控制的操作方法

              圖像控制的操作方法包括將一個圖像列表綁定到一個對象上Attach、將對象上的圖像列表解除綁定并返回句柄Detach、刪除一個圖像列表DeleteImageList、將一個圖像增加到圖像列表中Add和將一個圖像從圖像列表中刪除Remove等。

              (二)圖像控制的應用技巧

              對于圖像控制,同樣不能單獨使用,必須與列表控制、樹控制和標簽控制相互結(jié)合應用,下面分別介紹其具體應用技巧。

              1、圖像控制在列表控制中的應用技巧

              ①設(shè)置圖像控制CListCtrl::SetImageList的調(diào)用格式如下:

            CImageList* SetImageList( CImageList* pImageList, int nImageList );

              其返回值是指向前一個圖像列表控制的一個指針,如果不存在前一個圖像列表則為NULL;其中參數(shù)pImageList是指向圖像列表的標識,nImageList是圖像列表的類型,可以是如下值:

              LVSIL_NORMAL 用大圖標方式進行圖像列表;

              LVSIL_SMALL 用小圖標方式進行圖像列表;

              LVSIL_STATE 以圖像狀態(tài)進行圖像列表;

              ②取得圖像控制CListCtrl::GetImageList的調(diào)用格式如下:

            CImageList* GetImageList( int nImageList ) const;

              其返回值為指向圖像列表控制的指針,其中nImageList用來確定取得返回值的圖像列表的 值,其取值與設(shè)置圖像列表函數(shù)相同。

              ③圖像控制在列表控制中的應用示例

              CImageList Cil1,Cil2; //定義大小圖標像列表 

              CVCLISTApp 
            *pApp=(CVCLISTApp *)AfxGetApp();//取得列表控制程序 

              Cil1.Create(
            32,32,TRUE,2,2); //建立32位圖像控制 

              Cil1.Add(pApp
            ->LoadIcon(IDI_GJ));//增加選中狀態(tài)圖像 

              Cil1.Add(pApp
            ->LoadIcon(IDI_XS));//增加非選中狀態(tài)圖像 

              Cil2.Create(
            16,16,TRUE,2,2); //建立16位圖像控制 

              Cil2.Add(pApp
            ->LoadIcon(IDI_GJ));//增加選中狀態(tài)圖像 

              Cil2.Add(pApp
            ->LoadIcon(IDI_XS));//增加非選中狀態(tài)圖像 

              m_ListCtrl.SetImageList(
            &Cil1,LVSIL_NORMAL);//設(shè)置大圖標控制 

              m_ListCtrl.SetImageList(
            &Cil2,LVSIL_SMALL);//設(shè)置小圖標控制 



              2、圖像控制在樹控制中的應用技巧

              ①設(shè)置圖像控制CTreeCtrl::SetImageList的調(diào)用格式如下:

            CImageList
            * SetImageList( CImageList * pImageList, int nImageListType ); 

              其返回值為指向前前一個圖像列表的指針,否則為NULL;參數(shù)pImageList為指向圖像列表的標識,如果pImageList為NULL則所有的圖像都將從樹控制中被清除;nImageListType為圖像列表設(shè)置的類型,可以是如下值之一:

              TVSIL_NORMAL 設(shè)置正常圖像列表,其中包括選中和非選中兩種圖標;

              TVSIL_STATE 設(shè)置圖像列表狀態(tài),指用戶自定義狀態(tài);

              ②取得圖像控制CTreeCtrl::GetImageList的調(diào)用格式如下:
             

            CImageList
            * GetImageList( UINT nImage ); 

              如果調(diào)用成功則返回圖像列表控制指針,否則為NULL;nImage為取得返回值的圖像列表類型,其取值和取得圖像列表控制完全相同。

              ③圖像控制在樹控制中的應用示例


            CImageList Cil1,Cil2;
            //定義大小圖標像列表 

            CVCTREEApp 
            *pApp=(CVCTREEApp *)AfxGetApp();//獲取應用程序指針 

            Cil1.Create(
            16,16,ILC_COLOR,2,2);//建立圖像控制 

            Cil1.Add(pApp
            ->LoadIcon(IDI_PM));//增加選中狀態(tài)圖像 

            Cil1.Add(pApp
            ->LoadIcon(IDI_CJ));//增加非選中狀態(tài)圖像 

            m_TreeCtrl.SetImageList(
            &Cil1,TVSIL_NORMAL);//設(shè)置圖像控制列表 


              然后在樹控制的結(jié)構(gòu)定義中進行如下設(shè)置:


            TCItem.item.iImage
            =0//設(shè)置未選中圖像索引號 

            TCItem.item.iSelectedImage
            =1;//設(shè)置選中時圖像引號 


              3、圖像控制在標簽控制中的應用技巧

              ①設(shè)置圖像控制CTabCtrl::SetImageList的調(diào)用格式


            CImageList 
            * SetImageList( CImageList * pImageList ); 

              其返回值為指向前一個圖像列表的指針,如果不存在前一個圖像列表則為NULL;pImageList為標識TAB控制的圖像列表指針。

              ②取得圖像控制CTabCtrl::GetImageList的調(diào)用格式


            HIMAGELIST GetImageList() 
            const

              其返回值為指向TAB控制的圖像列表指針,如果調(diào)用不成功則為NULL。

              其應用技巧較前兩種更加簡單,這里不再贅述。
            Posted on 2005-11-08 19:03 艾凡赫 閱讀(439) 評論(0)  編輯 收藏 引用 所屬分類: MFC技術(shù)
            一本色道久久综合亚洲精品| 亚洲av日韩精品久久久久久a| 久久青草国产手机看片福利盒子| 蜜桃麻豆www久久| 无码国内精品久久综合88| 浪潮AV色综合久久天堂| 99热成人精品免费久久| 久久久久久久久久久精品尤物| 久久狠狠高潮亚洲精品| 亚洲精品综合久久| 久久精品国产99国产精偷| 欧美日韩精品久久免费| 亚洲午夜久久影院| 婷婷久久香蕉五月综合加勒比| 久久久久亚洲AV无码专区桃色| 欧美精品久久久久久久自慰| 久久婷婷人人澡人人| 久久精品国产亚洲欧美| 色88久久久久高潮综合影院| 欧美色综合久久久久久| 国产激情久久久久影院老熟女| 国产精品99久久免费观看| 超级碰碰碰碰97久久久久| 久久夜色精品国产www| 国产综合免费精品久久久| 亚洲欧美日韩精品久久| 狠狠色丁香久久婷婷综| 99久久免费国产精精品| 久久99精品久久久久婷婷| 日本久久久久亚洲中字幕| 久久亚洲sm情趣捆绑调教| 婷婷久久五月天| 国产精品久久久久久五月尺| 超级碰碰碰碰97久久久久| 精品久久亚洲中文无码| 亚洲精品蜜桃久久久久久| 久久精品欧美日韩精品| 国产91色综合久久免费分享| 久久狠狠色狠狠色综合| 国产激情久久久久影院老熟女免费| 99久久亚洲综合精品成人|