程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 為樹控制設置狀態圖標

為樹控制設置狀態圖標

編輯:關於C語言

 

 

步驟一:創建圖像

 

添加一個包含全部圖標資源的位圖到資源編輯器。下面的列子,我們使用了一個13X13像素位圖資源,當然你也可以使用不同尺寸的位圖資源。

 

步驟二:為圖像列表添加變量

class CTreeCtrlX : public CTreeCtrl

{

// Construction

public:

        CTreeCtrlX();

 

// Attributes

public:

    CImageList m_imageState ;

    :

    :

    :

 

}

步驟三:創建並設置圖像列表

 

調用Create()函數,用步驟一中給出的圖像ID與大小創建圖像列表,用SetImageList()函數設置圖像列表。過程如下:

        m_tree.m_imageState.Create( IDB_STATE, 13, 1, RGB(255,255,255) );

        m_tree.SetImageList( &(m_tree.m_imageState), TVSIL_STATE );

使用時我們在OnInitDialog()函數或OnInitialUpdate()函數中調用它。

 

步驟四:為每一個項目,指定狀態圖像

一旦為你的樹控制分配了圖像列表,當你插入項目到你的樹控制時,你可以為它指定狀態圖標SetItemState()函數可以達到上述目的。在此我們要使用INDEXTOSTATEIMAGEMASK( )宏,重新排序索引值。

 

        // Using TV_INSERTSTRUCT

        CString str = "xyzASDFqwerZCV";

        TV_INSERTSTRUCT tv_is;

        tv_is.hParent = parent ? parent : TVI_ROOT;

        tv_is.hInsertAfter = TVI_LAST ;

        tv_is.item.mask = TVIF_TEXT | TVIF_STATE;

        tv_is.item.stateMask = TVIS_STATEIMAGEMASK;

        tv_is.item.state = INDEXTOSTATEIMAGEMASK( 1 );

        tv_is.item.pszText = str.GetBuffer(1);

        tv_is.item.cchTextMax = str.GetLength();

        hItem = InsertItem( &tv_is );

        str.ReleaseBuffer();

 

        // Using SetItemState

        SetItemState( hItem, INDEXTOSTATEIMAGEMASK(1), TVIS_STATEIMAGEMASK );

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved