v6,listcontrol如何定位到指定的行数

lemonshyboy 2009-09-11 01:39:14
用ListCtrl(report)显示大量数据,但要求提供这样的查找功能:
比如,当用户想找 姓名 = 张三
那么,ListCtrl就应定位在 姓名列 = 张三 ,同时该行显示蓝色

现在,可以检索到用户想查找的元素,问题是如何实现该行变蓝。
谢谢。
...全文
321 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
山伟 2009-09-11
  • 打赏
  • 举报
回复
http://blog.csdn.net/skyremember/archive/2009/02/24/3933380.aspx
lemonshyboy 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 muzizongheng 的回复:]
SetItemState(xxx, LVIS_SELECTED | LVIS_FOCUSED , LVIS_SELECTED | LVIS_FOCUSED);

这个没效果???不会吧?
[/Quote]
嗯,没有效果。我是Use MFC为静态编译和Release模式下的。不知道有没有影响。
muzizongheng 2009-09-11
  • 打赏
  • 举报
回复
SetItemState(xxx, LVIS_SELECTED | LVIS_FOCUSED , LVIS_SELECTED | LVIS_FOCUSED);

这个没效果???不会吧?
lemonshyboy 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 muzizongheng 的回复:]
sorry, 那个是取消。。

SetItem(hitinfo.iItem, hitinfo.iSubItem, LVIF_IMAGE, NULL, 1, 0, LVIS_SELECTED, 0);
[/Quote]
没关联图片。
该listctrl控件的View是Report风格的。
wsphere 2009-09-11
  • 打赏
  • 举报
回复
SetItemState( m_curShownRow, LVIS_SELECTED | LVIS_FOCUSED , LVIS_SELECTED | LVIS_FOCUSED);
muzizongheng 2009-09-11
  • 打赏
  • 举报
回复
sorry, 那个是取消。。

SetItem(hitinfo.iItem, hitinfo.iSubItem, LVIF_IMAGE, NULL, 1, 0, LVIS_SELECTED, 0);
muzizongheng 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lemonshyboy 的回复:]
引用 4 楼 muzizongheng 的回复:
C/C++ codeEnsures that a list view itemis at least partially visible.


BOOL EnsureVisible(int nItem,
  BOOL bPartialOK
);


  选中函数:
  SetItemState(nItem,LVIS_SELECTED,LVIS_SELECTED);

  滚动函数:
  BOOL  EnsureVisible(  int  nItem,  BOOL  bPartialOK  );

  搜索函数:
  int  FindItem(  LVFINDINFO*  pFindInfo,  int  nStart  =  -1  )  const;
我这3个都试了,没有效果。
[/Quote]


不会吧, 我现在还在用着了

你是关联了imagelist???
SetItem(m_LastToolTipRow, m_LastToolTipCol, LVIF_IMAGE, NULL, 0, 0, LVIS_SELECTED, 0); //add by jg
jackyjkchen 2009-09-11
  • 打赏
  • 举报
回复
光标焦点定位到该行,再加一个鼠标点击的消息,具体没做过
lemonshyboy 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 muzizongheng 的回复:]
C/C++ codeEnsures that a list view itemis at least partially visible.


BOOL EnsureVisible(int nItem,
BOOL bPartialOK
);
[/Quote]

选中函数:
SetItemState(nItem,LVIS_SELECTED,LVIS_SELECTED);

滚动函数:
BOOL EnsureVisible( int nItem, BOOL bPartialOK );

搜索函数:
int FindItem( LVFINDINFO* pFindInfo, int nStart = -1 ) const;
我这3个都试了,没有效果。
muzizongheng 2009-09-11
  • 打赏
  • 举报
回复
Ensures that a list view item is at least partially visible. 


BOOL EnsureVisible(
int nItem,
BOOL bPartialOK
);

lemonshyboy 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jackyjkchen 的回复:]
是选中的那种蓝色还是……如果是要选中,可以模拟鼠标点击该行
[/Quote]
对,就是选中的那种蓝色,不是设置背景色的蓝色。
能否详细点?
jackyjkchen 2009-09-11
  • 打赏
  • 举报
回复
是选中的那种蓝色还是……如果是要选中,可以模拟鼠标点击该行
岁月小龙 2009-09-11
  • 打赏
  • 举报
回复
帮顶

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧