ClistCtrl

原文出处忘了

1. 关于带 chexbox 和图像的 CListCtrl

(1)设置具有chexbox风格的属性

//设置比较站风格、、、
LONG lCompareStyle;
lCompareStyle = GetWindowLong(m_ComparePoc.m_hWnd, GWL_STYLE);//获取当前窗口style
lCompareStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件
m_ComparePoc.SetExtendedStyle(lCompareStyle); //设置扩展风格


其中的m_ComparePoc是view为SmalIcon的clistCtrl对象。
(2)添加图像

m_imageList.Create(16, 16, ILC_COLOR16|ILC_MASK, 1, 1);
m_imageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_POC));
m_ComparePoc.SetImageList(&m_imageList,LVSIL_SMALL);


其中的m_imageList为CImageList的对象IDI_ICON_POC为资源中的一个ICON的ID。
(3)检查是否被选择

m_ComparePoc.GetCheck(i)


如果被选择则会返回真,否则为假。
(4)选择
m_ComparePoc.GetCheck(i)

m_ComparePoc.GetCheck(i)


置为选择状态,如果是选择的话,此函数也不会出错。

 


2. 关于 reportreport 的 clistCtrl

第三方控件的CReportCtrl类。
(1)设置风格的属性
//设置比较内容显示风格、、、
LONG lCompareShowStyle;
lCompareShowStyle = GetWindowLong(m_CompareShow.m_hWnd, GWL_STYLE);//获取当前窗口style
lCompareShowStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
lCompareShowStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
m_CompareShow.SetExtendedStyle(lCompareShowStyle); //设置扩展风格


(2)单元格背景色设置

m_CompareShow.SetItemBkColor(j,i+1,RGB(255,0,0), FALSE); 


其中的j和i+1和CListCtrl一样,都是从零开始的,FALSE表示不刷新整个控件,否则刷新整个控件。
(3)删除所有列

 m_CompareShow.DeleteAllColumns();


其中只是删除表头。
(4)删除所有的行 

 m_CompareShow.CListCtrl::DeleteAllItems();


这里调用CListCtrl的DeleteAllItems函数,而不是CReportCtrl里重载的DeleteAllItems函数
因为此函数会造成整个对话框的刷新和屏幕背景的刷新(原因未知,具体可查看源码)

CReportCtrl类http://download.csdn.net/detail/wuyuan2011woaini/5991311

你可能感兴趣的:(ClistCtrl)