原文出处忘了
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
//设置比较内容显示风格、、、 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