请教大家一个CListCtrl的问题

hedengxiang 2011-09-07 10:47:45
一个CListCtrl控件有两个列
然后我在这个控件上插入数据:
m_listUser.InsertItem(0, "zhang");
m_listUser.InsertItem(1, "chen");
m_listUser.InsertItem(2, "he");

m_listUser.SetItemText(0,1,"w");
m_listUser.SetItemText(1,1,"y");
m_listUser.SetItemText(2,1,"a");


而现实出来的结果却变成:
chen w
he y
zhang a

也就是说,第一列的数据按照字母表的顺序进行了排序,而第二列的数据却原封不动。。。

如何让他们一一对应呢?
也就是让zhang 和 w对应 chen和y对应 he和a对应
也就是说,排序的结果应该为:

chen y
he a
zhang w

这问题怎么解决呢?

我没有调用排序函数,是控件自己排序的~~
不知道我有没有表达清楚。。。
...全文
64 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hedengxiang 2011-09-07
  • 打赏
  • 举报
回复
可以了,谢谢各位~~~
yyyyy_3 2011-09-07
  • 打赏
  • 举报
回复
m_listUser.InsertItem(0, "zhang");
m_listUser.InsertItem(1, "chen");
m_listUser.InsertItem(2, "he");

以上是增加了3行.

m_listUser.SetItemText(0,1,"w"); //第1行第1列
m_listUser.SetItemText(1,1,"y"); //第2行第1列
m_listUser.SetItemText(2,1,"a"); //第3行第1列


hedengxiang 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xianglitian 的回复:]
引用 1 楼 chinatcp 的回复:

CListCtrl控件属性有一个 Sort,把它设置为 None

应该是这个问题
在资源编辑器里改一下
[/Quote]

只有一个“No sort header”但是不管有没有勾选上,都是一样的效果~~~
hedengxiang 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
chen y
he a
zhang w


C/C++ code

CListCtrl::InsertItem(0, _T(""));
CListCtrl::SetItemText(0, 0, _T("chen");
CListCtrl::SetItemText(0, 1, _T("y"));

CListCtrl::InsertItem(1, _T(""));
CList……
[/Quote]


这样变成只显示最后一行。。。前面的数据全都丢失了~~~
hedengxiang 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
chen y
he a
zhang w


C/C++ code

CListCtrl::InsertItem(0, _T(""));
CListCtrl::SetItemText(0, 0, _T("chen");
CListCtrl::SetItemText(0, 1, _T("y"));

CListCtrl::InsertItem(1, _T(""));
CList……
[/Quote]

这样现实也不正常。。。第二列的数据有些会丢失掉。。。
不知道什么原因
向立天 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinatcp 的回复:]

CListCtrl控件属性有一个 Sort,把它设置为 None
[/Quote]
应该是这个问题
在资源编辑器里改一下
Eleven 2011-09-07
  • 打赏
  • 举报
回复
chen y
he a
zhang w

CListCtrl::InsertItem(0, _T(""));
CListCtrl::SetItemText(0, 0, _T("chen");
CListCtrl::SetItemText(0, 1, _T("y"));

CListCtrl::InsertItem(1, _T(""));
CListCtrl::SetItemText(1, 0, _T("he"));
CListCtrl::SetItemText(1, 1, _T("a"));

CListCtrl::InsertItem(2, _T(""));
CListCtrl::SetItemText(2, 0, _T("zhang "));
CListCtrl::SetItemText(2, 1, _T("w"));
shenyi0106 2011-09-07
  • 打赏
  • 举报
回复
一般使用InsertItem的返回值作为SetItemText的第一个参数传入

还有CListCtrl如果不实现排序的话,貌似是不自动排序的
罗平 2011-09-07
  • 打赏
  • 举报
回复
CListCtrl控件属性有一个 Sort,把它设置为 None

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧