用CListCtrl::SetItemState()设置项目状态
用SetItemState()光标总是回到第一项,似乎还是不行。
你怎么用的SetItem()
LVITEM lvitem;
ZeroMemory(&lvitem, sizeof(lvitem));
lvitem.stateMask = LVIS_FOCUSED;
lvitem.mask = LVIF_STATE;
for (int i = 0; i < GetItemCount(); i++)
{
lvitem.iItem = i;
GetItem(&lvitem);
if (lvitem.state)
break;
}
int j = i;
for (;i < GetItemCount(); i++)
{
if (!strnicmp(str, GetItemText(i, 0), strlen(str)))
{
SetItemState(j, 0, LVIF_STATE);
SetItemState(i, LVIS_FOCUSED and LVIS_SELECTED, LVIF_STATE);
break;
}
}
用
CListCtrl::SetItem(1, 0, LVIF_STATE, 0, 0,
LVIS_FOCUSED and LVIS_SELECTED, LVIS_FOCUSED and LVIS_SELECTED, 0)
设置状态可以
使用SetItemState()函数, 第一个参数(whichitem) 就是你所想光标放在CListCtrl中的第几项
SetItemState(whichitem, LVIS_SELECTED and LVIS_FOCUSED, LVIS_SELECTED and LVIS_FOCUSED );