请教一个很简单的关于Listctrl的问题。

Auto_And_Elec 2001-07-24 07:40:21
如何实现一个ClistCtrl的其中的一个Item中某一列(也就是说其中的一个单元格)是可编辑的?或者是一个下拉选择框?

或者是如何实现一个ClistCtrl的某一Item可编辑,或者某一个subitem是可编辑的?


偶的思路:给其中需要编辑的那个Item或者subitem写一个类。需要的时候,在那个单元格中实现一个类对象。(好像不太可行)

各位帮帮忙吧,谁有这方面的代码,发给我感激不尽。
...全文
77 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sunnyboy6281 2001-07-24
用一个edit框,一个安钮和一组弹出的edit框是否可以实现?
回复
zzh 2001-07-24
创建一个EDIT或COMBOX的成员变量,然后在单击时把一个CEdit控件画出来,这个EDIT控件就是可编辑的
回复
cqa 2001-07-24
如 kekepengpeng(磕磕碰碰) 所说,我用VB这样做过
回复
heqian79 2001-07-24
建议去看Codeguru的ListControl(或者ListView)下的文章。
我这里有自己改过的源码,要的话Email:jhliu79@263.net
回复
allfresh 2001-07-24
gz
回复
dabou 2001-07-24
ok,要做好几件事,
首先,加入LVS_EDITLABELS样式
m_listView.Create(WS_VISIBLE|WS_CHILD|WS_BORDER|LVS_REPORT|LVS_NOSORTHEADER
|LVS_EDITLABELS,CRect(20,40,250,220),this,IDC_LISTVIEW);
2,对LVN_BEGINLABELEDIT AND LVN_ENDLABEDIT作响应。
重载OnNotify();
virtual BOOL CWnd::OnNotify(WPARAM wParam,LPARAM lParam,LRESULT* pResult);
lParam to LV_DISPINFO指针
LV_DISPINFO* pDispInfo=(LV_DISPINFO*) lParam;
能访问hdr.code成员
UINT notificationID=pDispInfo->hdr.code;
如果ID是LVN_BEGINLABELEDIT
if(notificationID==LVN_BEGINLABELEDIT){
//Preform pre_edit processing here.
}
如果ID是LVN_ENDLABELEDIT要把新的标签从编辑控件复制到列表视图项。
LV_DISPINFO结构的item.iItem成员保存的是条目的ID:
UINT itemIndex=pDispInfo->item.iItem;
ok,你可获得文本
CString newText=pDispInfo->item.pszText;
if(newText!="") m_listView.SetItemText(itemIndex,0,newText);


回复
kekepengpeng 2001-07-24
思路好象是在哪个Item上面粘贴上一个Edit或ComboBox控件,然后更新CListCtrl就行。
回复
nmsxy 2001-07-24
codeguru上有。我看过源码,很复杂。建议你还是用ff1算了。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-24 07:40
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……