Chinaunix首页 | 论坛 | 博客
  • 博客访问: 628311
  • 博文数量: 603
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-17 11:04
文章分类

全部博文(603)

文章存档

2011年(1)

2008年(602)

我的朋友

分类:

2008-09-17 11:11:40


()
- ()
-- ()


由 zhang88268135 在 2008-08-19 17:15 发表:

问题 [求助] CListCtrl问题

把CListCtrl控件设置为Report View,
在列表中增加纪录,如何实现新增加的纪录显示在当前行,旧纪录向上移的功能。


由 zhang88268135 在 2008-08-20 11:19 发表:

请高手指点一下


由 ayuilove1 在 2008-08-20 11:45 发表:

据我的了解是好象没有一个函数可以实现,你可以自己编个:
int nIndex = listCtrl.GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
if(nIndex == -1)
return ; //得到当前行。
for(int i =1;i<=nIndex - 1; i++ )
{
listCtrl.SetItemText(i-1,listCtrl.GetItemText(i));
}//将当前行的数据上移(第0行数据没了)
listCtrl.SetItemText(nIndex,插入的数据);//在当前插入数据。
//伪语言写的啊!!


由 zhang88268135 在 2008-08-21 17:30 发表:

上移的数据没有了,不能满足我的要求。


由 ayuilove1 在 2008-08-22 09:29 发表:

那你想怎么样。。。原来有nIndex行数据,现在上移了,肯定少一行,要不插在哪。。。程序是死的!它只会按我们预先设计好的路径工作。你的思路都不明确,还要程序自己想吗?电脑只是运算速度快点而已!对多一行的数据可以有很多方法,比如插在结尾。。。看你的要求了,你只要求插入数据时,旧数据上移,那程序就会按这条路径跑,它不会自己对多出的数据处理的。自己没有考虑完善,结果出来了,又说这说那!


由 tlfuyong 在 2008-08-27 18:47 发表:

参考下面的语句去做吧!
listCtrl.SetItemText(nItem, nSubItem, strText);
listCtrl.SetItemState(nItem,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
listCtrl.SetFocus();
listCtrl.EnsureVisible(nItem, TRUE);
listCtrl.RedrawWindow();


由 小人物 在 2008-09-09 10:45 发表:

取消ListCtrl的Sort属性,用InsertItem()增加一行,然后用SetItemText写入你要写的内容,注意得记住插入时的行号,然后调用SetFocus()就可以了。


由 zhang88268135 在 2008-09-10 11:34 发表:

楼上的方法试了都不行。再说明一下:
在列表中有多条记录,一屏不能完全显示,要用垂直滚动条来滚动纪录。
如果想将第1000行纪录显示在列表的第一行或者最后一行。
就需要程序来控制垂直滚动条。怎样实现?


全部时间均为北京时间. 现在时间是14:32 .

Powered by: vBulletin Version 2.2.8
Translated and hacked by:
Copyright © Jelsoft Enterprises Limited 2000, 2001.


--------------------next---------------------

阅读(259) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~