vc中listctrl控件在定时器刷新的情况下如何保持被选中行的选中状态???

来源:百度知道 编辑:UC知道 时间:2024/05/31 11:21:44
同上

这个要看你自己控制了,如果你每次都清空listctrl的数据再重新写入,原来选中的一行肯定无法是选中状态了,你可以记住原来的行,
//得到选择的所有项
POSITION pos = m_list.GetFirstSelectedItemPosition();
if (pos == NULL)
{
TRACE0("No items were selected!\n");
}
else
{
if(pos)
{
int nItem = m_list.GetNextSelectedItem(pos);
// you could do your own processing on nItem here
m_nSelected = nItem ;
}
}
}

刷新后用代码指定那一行为选中状态

m_list.SetItemState(m_nSelected, LVIS_SELECTED, LVIS_SELECTED);
m_list.EnsureVisible(m_nSelected, false);

在刷新前记录下是哪一行被选中了,不过不能只记录行,还需要记录该行的唯一的特征(比方说ID),然后刷新,最后遍历所有行,找到那个选中的行并比较该行的唯一特征(比方说ID),如果相同则选择该行。

定时器刷新会影响控件的状态?
呵呵,有没有高人分析下,我也想知道,定时器怎么会影响到控件。