您的位置:首页 > 其它

CListctrl 获取指定列表的图标序号

2014-11-12 13:28 197 查看
       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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CListCtrl