MFClistctrl中的Item改变先后顺序的问题

2025-03-06 18:52:16
推荐回答(1个)
回答1:

CListCtrl::GetFirstSelectedItemPosition

POSITION GetFirstSelectedItemPosition()

返回一个用于迭代或获取对象指针的POSITION值;如果没有选择任何项,那么将返回NULL。

在列表视图控件中获取第一个选择项的位置。

MSDN给出了该函数的用法。
CListCtrl* pListCtrl=( CListCtrl* )GetDlgItem(IDC_YOURLISTCONTROL);
ASSERT(pListCtrl !=NULL)
POSITION pos = pList->GetFirstSelectedItemPosition();
if (pos==NULL) TRACE0("No items were selected!\n")
else
{
while (pos)
{
int nItem=pList->GetNextSelectedItem(pos);
TRACE1("item %d was Selected!\n",nItem);
//you could do your processing on nItem here
}
}

另外交换list的一项可以用这个函数
CListCtrl::SetItemPosition

BOOL SetItemPosition(int nItem,POINT pt)

返回值:如果成功,则返回非零值,否则为0。

参数: nItem 要设定位置项的索引。
pt 在视图坐标中指定项左上角新位置的POINT结构值。

具体我也没试你自己试试看吧