首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SetItemState不会自动标记

SetItemState不会自动标记
EN

Stack Overflow用户
提问于 2013-10-30 22:05:33
回答 1查看 99关注 0票数 0

我已经在MFC对话框的报表视图中为我的列表控件创建了一个搜索函数。它看起来像这样

代码语言:javascript
复制
m_List.SetItemState((m_List.FindItem(&Finde)),LVIS_SELECTED,LVIS_SELECTED ); 

它搜索变量Finde中的内容并对其进行标记。现在,它应该标记该行。但我首先要点击程序中的某个地方。它不会在函数被调用后直接标记行。

有谁可以帮我?

下面是完整的函数

代码语言:javascript
复制
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"));
}
EN

回答 1

Stack Overflow用户

发布于 2013-10-30 22:10:26

您需要使用样式LVS_SHOWSELALWAYS,否则,只有当控件具有焦点并且处于活动状态时,才会显示选定内容。

编辑:还请记住,还有一种LVIS_FOCUSED样式,它也会强制滚动到此项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19684474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档