http://blog.csdn.net/sunnyloves/article/details/5707783 來自上面鏈接
CImageList il; // 定義為成員變量,或者最后加上il.Detach();這句
il.Detach();
恩,多謝樓上的各位.就是問題。 我想到了,,
這是局部成員變量,OnInitDialog()結(jié)束后會釋放內(nèi)存,或者可以把CImageList定義為類的成員變量。 在孫鑫的VC++深入詳解里面有的,樓上的一點撥,我記得了。
再次感謝,就此結(jié)貼。
很多網(wǎng)上的文章 都沒仔細(xì)說怎么插入ico
今天摸索了下 果然還是很簡單的 要用到LVITEM這個結(jié)構(gòu)體,就是具體的項
首先是資源里添加ico 然后.h文件里寫全局變量
[cpp] view plain copy 在CODE上查看代碼片派生到我的代碼片
CImageList m_ImageList;然后cpp代碼里
[cpp] view plain copy 在CODE上查看代碼片派生到我的代碼片
<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、用類向?qū)崿F(xiàn)虛函數(shù)OnNMCustomdraw;
3、虛函數(shù)里寫入下面代碼
[cpp] view plain copy 在CODE上查看代碼片派生到我的代碼片
<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) { //基數(shù)行 if ((pNMCD->dwItemSpec % 2)) { lplvdr->clrTextBk = CHARTBACKCOLOR; } *pResult = CDRF_DODEFAULT; }新聞熱點
疑難解答