昨天小同事问我怎么用list control显示icon,俺也没用过,临时抱佛脚,求百度,求google,好歹给弄出来了。
在oninitial函数内添加:
HICON myIcon[2];
myIcon[0]=AfxGetApp()->LoadIcon(IDI_ICON1);
myIcon[1]=AfxGetApp()->LoadIcon(IDI_ICON2);
myList.Create(32, 32, ILC_COLOR32, 0, 1);
for(int i=0;i<2;i++)
{
myList.Add(myIcon[i]);
}
m_listctrl.SetImageList(&myList,LVSIL_NORMAL);
for(i=0;i<2;i++)
{
LVITEM lvitem;
lvitem.mask=LVIF_IMAGE|LVIF_TEXT;
lvitem.iItem=i;
lvitem.pszText=" hello";
lvitem.iImage=i;
lvitem.iSubItem=0;
m_listctrl.InsertItem(&lvitem);
}
/* POINT pt;
m_listctrl.GetItemPosition(0,&pt);
pt.x += 40;
m_listctrl.SetItemPosition(1, pt);
*/
在dlg头文件中添加变量:CImageList myList;
这样就可以显示出来标题为hello的两个图标了:IDI_ICON1、IDI_ICON2.
期间犯了个错误导致控件无法显示图标,CImageList myList定义在了oninitial函数内,结果这个局部变量在onintial运行结束时当然就木有内容了!所以list control就没有东西显示了。
不懂,瞎总结,呵呵。