MFC 列表(CListCtrl)如何改变项目位置,我希望得到置顶处理

来源:百度知道 编辑:UC知道 时间:2024/04/28 11:45:39
MFC 列表如何改变项目位置,我希望得到置顶处理

哪个函数是改变项目位置的啊?我在MSDN查出来的都不会用

我汗,经常有1个或多个参数是未知的类型的,搞得我手忙脚乱得

列表如何改变项目位置,用CListCtrl那个函数啊?及其参数的具体附值方法
就是将指定的项目移动到最顶 第0项 我汗~~不是这个意思

完全误解了~~~不是这个帖子置顶,我汗死~~

呃,现在我就是不知道怎么把指定的那行放到第0行去啊 用CListCtrl那个函数啊?及其参数的具体附值方法

回复1:
你这个置顶什么意思?一直显示某一行位置么?你以为listbox是帖子呢。。。置顶还。。。如果是一直显示某一行的话,看这个:
m_list.SetTopIndex(m_list.GetCount()-1); // 一直显示最后一行
SetTopIndex()是设置显示某行,GetCount()是获得总的行数.

回复2:
显然没误解啊,如果误解了还会有m_list那些语句么?
你可以这样变通下:指定项你是知道的,可以获得内容,获得后将第0项内容设置为该指定的内容。至于原来指定行的内容是否删除就看你自己的需求了。

回复3:
代码如下:
int nSel = m_list.GetCurSel(); // 当前选中的行数
if(nSel < 0)
return;

CString strText;
m_list.GetText(nSel, strText);
int nTarget = nSel - 1; //向上则递减,反之递增
m_list.InsertString( nTarget, strText ); // 第0项则//nTarget=0

这样就实现了将nSel(选中项)上移一个位置,如果想移动到第0行,则InsertString函数的第一个参数为0,自己试试吧。

m_list.DeleteItem(i);//删去第几行
m_list.InsertItem(0,"置顶");//在第一行加入