MFC 手动添加自会Listcontrl
Posted guo-xin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 手动添加自会Listcontrl相关的知识,希望对你有一定的参考价值。
1.在工具箱中拖拽一个list控件,更改View属性为Report得到如下图所示控件。
2.右键控件->添加变量->变量类型为CListCtrl。变量名根据需求自己定义。如下:
3.在工程的消息函数添加:
DDX_Control(pDX, 控件ID, 变量名);
4.在初始化或者需要listcontrl控件的代码处添加控件的初始化代码段,为了安全建议list第一行第一列不要放任何元素。以下使本人代码,仅供参考。
变量名.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); // 整行选择、网格线 变量名.InsertColumn(0, _T(""), LVCFMT_CENTER, 0); 变量名.InsertColumn(1, _T("巡检记录"), LVCFMT_CENTER, m_rectlist_video.Width() / 8); // 插入第2列的列名
5.为进一步美化list控件 在BEGIN_MESSAGE_MAP 处添加如下自定义函数:
ON_NOTIFY(NM_CUSTOMDRAW, 控件ID, OnCustomdrawListerr)
别忘了在工程对应的.h文件中添加
afx_msg void OnCustomdrawListerr(NMHDR*, LRESULT*);
之后就可以按照自己需求重写OnCustomdrawListerr函数:
void video::OnCustomdrawListerr(NMHDR *pNMHDR, LRESULT *pResult) { NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); *pResult = 0; //指定列表项绘制前后发送消息 if (CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage) { *********** } else if (CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage) { ***************** ******************** } }
因保密等问题这里不好放源代码,如有疑问或者需要代码。可以留言,交流思路。
个人经验总结,如有错误或者侵犯到您个人的利益,请留言与我联系。
以上是关于MFC 手动添加自会Listcontrl的主要内容,如果未能解决你的问题,请参考以下文章