编辑listcontrol的subitem

http://blog.csdn.net/lovton/article/details/6527208这是常规listcontrol用法

最近项目需要编辑listcontrol的任意一个子项。在网上查了很多信息,没有查到如何只修改listcontrol的属性来修改它的子项。若哪位仁兄仁姐知道请告知一二,先谢过啦。

我用的方法是:添加两个控件,1.listcontrol控件,添加控件变量m_list1;2.edit控件,添加控件变量m_edit。

添加listcontrol的单击事件OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)。

OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)

{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
int nItem,nSubItem;
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; //强制转换
nItem=pNMListView->iItem;//选中的行号

nSubItem=pNMListView->iSubItem;//选中的列号

        if(nSubItem==0||nSubItem==-1||nItem==-1)
return;//如果单击在列名或第一列则不做任何事


CRect rcCtrl;
m_list1.GetSubItemRect(nItem,nSubItem,LVIR_LABEL,rcCtrl);//得到选中子项的矩形
m_edit.SetParent(&m_list1);//将list选为edit的父窗口,有的程序没有这一句也可以,不知道为什么

m_edit.MoveWindow(&rcCtrl);//将edit移动到子项的举行区域,使看起来和编辑子项一样


       CString stredit=m_list1.GetItemText(nItem,nSubItem);//stredit存放选中子项的内容

m_edit.SetWindowText(stredit);//使edit显示选中子项的内容

m_edit.SetFocus();//使edit得到焦点

}

此程序只是实现将edit的位置放在子项位置,并将子项的值显示在edit中,不能完成将edit中的值保存在子项中。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值