CListctrl 獲取指定列表的圖標序號

       CListctrl獲取選中行的行序號和列序號,獲取指定行,或者指定列的內容,等等相關常用操作,都可以通過百度查找到,但是當我需要獲取指定行的圖標序號時,卻不是那麼容易。但是看完本篇內容,會發現其實也不難。

        首先要了解一個結構體:LVITEM

typedef struct _LVITEM {

UINT   mask;        //說明LVITEM結構中哪些成員有效

int    iItem;       //項目的索引值(可以視爲行號)從0開始

int    iSubItem;    //子項的索引值(可以視爲列號)從0開始

UINT   state;       //子項的狀態

UINT   stateMask;   //狀態有效的屏蔽位

LPTSTR pszText;   //主項或子項的名稱

int    cchTextMax; //pszText所指向的緩衝區大小

int    iImage;       //關聯圖像列表中指定圖像的索引值

LPARAM lParam;    //程序定義的32位參數

int iIndent;          //表示圖像位置縮進的單位

} LVITEM, FAR *LPLVITEM;


明白這個結構體後,後面的容易多了,直接代碼:

        LVITEM selItem1;
	LVITEM selItem2;

	ZeroMemory ( &selItem1, sizeof(LVITEM) );
	ZeroMemory ( &selItem2, sizeof(LVITEM) ); 

	selItem1.iItem = iItem1;
	selItem1.mask = LVIF_IMAGE | LVIF_STATE; 
	selItem1.stateMask = LVIS_SELECTED;
	selItem2.iItem = iItem2;
	selItem2.mask = LVIF_IMAGE | LVIF_STATE; 
	selItem2.stateMask = LVIS_SELECTED;

	list->GetItem(&selItem1);
	list->GetItem(&selItem2);

	int nImgIndex1=0,nImgIndex2=1;
	nImgIndex1 = selItem1.iImage;
	nImgIndex2 = selItem2.iImage;

通過代碼,相信應該可以明白其中的過程,其中需要說明的是,前提已經知道所需要列表的行序號,

即iItem1和iItem2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章