给ListControl的第一列加入图片及文字

时间:2021-09-09 19:32:20
RT,就像任务管理器 的应用程序页面那样一样。。
m_list是与CListControl关联的变量

   CImageList m_ImageList;
    
m_ImageList.Create(32,32,ILC_COLOR4|ILC_MASK,0,0);
       m_list.SetImageList(&m_ImageList,LVSIL_NORMAL);


HICON myIcon[3]; 

myIcon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);//注意这里是通过LoadIcon获得HICON 

myIcon[1]=AfxGetApp()->LoadIcon(IDI_ICON2); 

myIcon[2]=AfxGetApp()->LoadIcon(IDI_ICON3); 

m_ImageList.Add(myIcon[0]);
大家我看看我还差哪些语句啊

8 个解决方案

#1


 

CImageList il;
il.Create(16,16,ILC_COLOR,2,2);
il.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
il.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_list.SetImageList(&il,LVSIL_SMALL);//LVSIL_NORMAL);
m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"年龄",LVCFMT_RIGHT,50);
m_list.InsertItem(0,"小明",0);
m_list.InsertItem(1,"小强",0);
m_list.InsertItem(1,"小璐",1);
 这样就能加入图片了,m_list.InsertItem(0,"小明",0);里的第三个参数是选择第几个图片,就是加入了IDI_ICON1,m_list.InsertItem(1,"小璐",1);加入了IDI_ICON2

#2


我这样做了后,的确"能显示"。
怎么说:我定义了3个ICON是有颜色的,可是这样我看到的图片却全是白色的。。

#3


CImageList imageList;
HICON myIcon[3]; 
myIcon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);//注意这里是通过LoadIcon获得HICON 
myIcon[1]=AfxGetApp()->LoadIcon(IDI_ICON2); 
myIcon[2]=AfxGetApp()->LoadIcon(IDI_ICON3); 

m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"年龄",LVCFMT_RIGHT,50);

imageList.Create(32, 32, ILC_COLOR32, 8, 8); 
for(int i=0; i < 3; i++) 

imageList.Add(myIcon[i]); 


m_list.SetImageList(&imageList, LVSIL_STATE); 
for(i=0; i < 3; i++) 

m_list.InsertItem(0,"abc",i); 



这是我改后的代码

#4


m_list.SetImageList(&il,LVSIL_SMALL);这样看看

#5


LVSIL_NORMAL   Image list with large icons.


LVSIL_SMALL   Image list with small icons.


LVSIL_STATE   Image list with state images. 
这三个都试验过了,没用。。不知道哪里出了问题。。

#6



CImageList il; // 定义为成员变量,或者最后加上il.Detach();这句
il.Create(16,16,ILC_COLOR|ILC_MASK,2,2);
il.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
il.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_list.SetImageList(&il,LVSIL_SMALL);//LVSIL_NORMAL);
m_list.InsertColumn(0,"ÐÕÃû",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"ÄêÁä",LVCFMT_RIGHT,50);
m_list.InsertItem(0,"СÃ÷",0);
m_list.InsertItem(1,"Сǿ",0);
m_list.InsertItem(1,"Сè´",1);
m_list.InsertItem(0,"СÃ÷",0);
m_list.InsertItem(1,"Сè´",1);
il.Detach();

#7


imageList.Create(16, 16, ILC_COLOR32, 3, 3);这样看看

#8


CImageList il; // 定义为成员变量,或者最后加上il.Detach();这句

il.Detach();

恩,多谢楼上的各位.就是问题。
我想到了,,

这是局部成员变量,OnInitDialog()结束后会释放内存,或者可以把CImageList定义为类的成员变量。
在孙鑫的VC++深入详解里面有的,楼上的一点拨,我记得了。

再次感谢,就此结贴。

#1


 

CImageList il;
il.Create(16,16,ILC_COLOR,2,2);
il.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
il.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_list.SetImageList(&il,LVSIL_SMALL);//LVSIL_NORMAL);
m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"年龄",LVCFMT_RIGHT,50);
m_list.InsertItem(0,"小明",0);
m_list.InsertItem(1,"小强",0);
m_list.InsertItem(1,"小璐",1);
 这样就能加入图片了,m_list.InsertItem(0,"小明",0);里的第三个参数是选择第几个图片,就是加入了IDI_ICON1,m_list.InsertItem(1,"小璐",1);加入了IDI_ICON2

#2


我这样做了后,的确"能显示"。
怎么说:我定义了3个ICON是有颜色的,可是这样我看到的图片却全是白色的。。

#3


CImageList imageList;
HICON myIcon[3]; 
myIcon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);//注意这里是通过LoadIcon获得HICON 
myIcon[1]=AfxGetApp()->LoadIcon(IDI_ICON2); 
myIcon[2]=AfxGetApp()->LoadIcon(IDI_ICON3); 

m_list.InsertColumn(0,"姓名",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"年龄",LVCFMT_RIGHT,50);

imageList.Create(32, 32, ILC_COLOR32, 8, 8); 
for(int i=0; i < 3; i++) 

imageList.Add(myIcon[i]); 


m_list.SetImageList(&imageList, LVSIL_STATE); 
for(i=0; i < 3; i++) 

m_list.InsertItem(0,"abc",i); 



这是我改后的代码

#4


m_list.SetImageList(&il,LVSIL_SMALL);这样看看

#5


LVSIL_NORMAL   Image list with large icons.


LVSIL_SMALL   Image list with small icons.


LVSIL_STATE   Image list with state images. 
这三个都试验过了,没用。。不知道哪里出了问题。。

#6



CImageList il; // 定义为成员变量,或者最后加上il.Detach();这句
il.Create(16,16,ILC_COLOR|ILC_MASK,2,2);
il.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
il.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_list.SetImageList(&il,LVSIL_SMALL);//LVSIL_NORMAL);
m_list.InsertColumn(0,"ÐÕÃû",LVCFMT_LEFT,200);
m_list.InsertColumn(1,"ÄêÁä",LVCFMT_RIGHT,50);
m_list.InsertItem(0,"СÃ÷",0);
m_list.InsertItem(1,"Сǿ",0);
m_list.InsertItem(1,"Сè´",1);
m_list.InsertItem(0,"СÃ÷",0);
m_list.InsertItem(1,"Сè´",1);
il.Detach();

#7


imageList.Create(16, 16, ILC_COLOR32, 3, 3);这样看看

#8


CImageList il; // 定义为成员变量,或者最后加上il.Detach();这句

il.Detach();

恩,多谢楼上的各位.就是问题。
我想到了,,

这是局部成员变量,OnInitDialog()结束后会释放内存,或者可以把CImageList定义为类的成员变量。
在孙鑫的VC++深入详解里面有的,楼上的一点拨,我记得了。

再次感谢,就此结贴。