很多网上的文章 都没仔细说怎么插入ico
今天摸索了下 果然还是很简单的 要用到LVITEM这个结构体,就是具体的项
首先是资源里添加ico 然后.h文件里写全局变量
CImageList m_ImageList;
然后cpp代码里
<pre name="code" class="cpp">m_ImageList.Create(32,32, ILC_COLOR32, 2,2); //貌似32位的不会有黑色的阴影
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_RIGHTICON));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_WORNGICON));
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_SUBITEMIMAGES);
m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);
m_ListCtrl.InsertColumn(0,m_ColLableStr[0],LVCFMT_CENTER,100);
m_ListCtrl.InsertColumn(1,m_ColLableStr[1],LVCFMT_CENTER,100);
LVITEM lvItem;
lvItem.mask = LVIF_IMAGE | LVIF_TEXT;
lvItem.iImage = 0;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
lvItem.pszText = _T("第0列");
m_ListCtrl.InsertItem(&lvItem);
lvItem.iImage = 1;
lvItem.iItem = 1;
lvItem.pszText = _T("第1列");
m_ListCtrl.InsertItem(&lvItem);
============================================
背景交替显示不同颜色可以起到很好的显示效果
代码也很简单
1、派生CListCtrl或者CMFCListCtrl;
2、用类向导实现虚函数OnNMCustomdraw;
3、虚函数里写入下面代码
<pre name="code" class="cpp">LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
// TODO: Add your control notification handler code here
NMLVCUSTOMDRAW * lplvdr=(NMLVCUSTOMDRAW*)pNMHDR;
if (pNMCD->dwDrawStage == CDDS_PREPAINT)
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if (pNMCD->dwDrawStage == CDDS_ITEMPREPAINT)
{
//基数行
if ((pNMCD->dwItemSpec % 2))
{
lplvdr->clrTextBk = CHARTBACKCOLOR;
}
*pResult = CDRF_DODEFAULT;
}