光看这些真的搞不懂怎么弄,于是下载别人写好的代码,认真看了一篇,发现原来如此简单,果然代码是程序员之间沟通的最好渠道。
接下来我来简单说一下实现该功能的步骤:
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