码迷,mamicode.com
首页 > 编程语言 > 详细

MFC 手动添加自会Listcontrl

时间:2019-12-12 18:16:44      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:oid   col   ast   ima   定义函数   根据   mdr   hdr   添加   

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

标签:oid   col   ast   ima   定义函数   根据   mdr   hdr   添加   

原文地址:https://www.cnblogs.com/Guo-xin/p/12030668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!