当前位置:C++技术网 > 资讯 > 如何在CListCtrl控件的某一单元格下添加编辑框

如何在CListCtrl控件的某一单元格下添加编辑框

更新时间:2016-03-24 11:30:21浏览次数:1+次

  今天需要实现如何在CListCtrl控件的某一单元格下添加编辑框,网上很多人都说重载CListCtrl类,加个CEdit变量,自己创建下拉框控件,然后移动控件到ListCtrl对应的单元格位置。

  光看这些真的搞不懂怎么弄,于是下载别人写好的代码,认真看了一篇,发现原来如此简单,果然代码是程序员之间沟通的最好渠道。

  接下来我来简单说一下实现该功能的步骤:

  1、新建一个对话框项目,在对话框ListDlg里添加CListCtrl控件。

  2、新建一个类CEditList,重载CListCtrl类。

  3、将CListCtrl控件添加类型是CEditList的变量m_Edit,即将控件与m_Edit关联

  4、在CEditList类里添加单击事件=NM_CLICK,

  5、在CLICK事件中,将参数pNMHDR转换NM_LISTVIEW *,NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;通过GetSubItemRect获取单元格的矩形坐标,GetSubItemRect(pNMListView->iItem, pNMListView->iSubItem, LVIR_BOUNDS, rect);这里说明一下,iItem是行号,iSubItem是列号。

  6、最后就是动态创建编辑框pEdit,pEdit->Create(WS_CHILD | WS_VISIBLE, rect, this, IDC_EDITCTRL);IDC_EDITCTRL是一个ID号,#define IDC_EDITCTRL 0x1234,最好不要跟Resource.h里面的ID号重复。

  这样就完成了在CListCtrl控件的某一单元格下添加编辑框。

  如果我说得不够明白或者有问题,欢迎留言。

  最后分享我下载的代码,代码地址:http://pan.baidu.com/s/1pK0jNTL