我在MFC对话框的报表视图中为我的列表控件创建了搜索功能。看起来像这样
m_List.SetItemState((m_List.FindItem(&Finde)),LVIS_SELECTED,LVIS_SELECTED );
它搜索变量Finde
中的内容并对其进行标记。现在它应该标记该行。但我首先要点击程序中的某个地方。调用函数后,它不会直接标记行。
任何人都可以帮助我吗?
这是完整的功能
LVFINDINFO Finde;
Finde.flags = LVFI_PARTIAL|LVFI_STRING;
Finde.psz = _T("Siffert");
if ((m_List.FindItem(&Finde)) != -1)
{
m_List.SetItemState((m_List.FindItem(&Finde)),LVIS_SELECTED,LVIS_SELECTED );
//m_List.SetSelectionMark((m_List.FindItem(&Finde)));
}
else
{
MessageBox(_T("No Results"));
}
答案 0 :(得分:0)
您需要使用样式LVS_SHOWSELALWAYS 其他只有在控件具有焦点且处于活动状态时才会显示选择。
编辑:另请注意,还有一种LVIS_FOCUSED样式,它也会强制滚动到此项目。