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)
    {
        *****************
       ********************
    }
}

因保密等问题这里不好放源代码,如有疑问或者需要代码。可以留言,交流思路。

个人经验总结,如有错误或者侵犯到您个人的利益,请留言与我联系。

猜你喜欢

转载自www.cnblogs.com/Guo-xin/p/12030668.html
MFC
今日推荐