CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何在listctrl中设置某项被默认选中?

楼主dippstar(求知)2006-03-09 16:56:23 在 VC/MFC / 基础类 提问

我在初始化函数OnInitDialog()中,用SetItemState设置第2项("22222")被默认选中,但结果不行,什么原因啊?  
   
  BOOL   CTestDlg::OnInitDialog()  
  {  
          CDialog::OnInitDialog();  
          //。。。  
          m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT   |   LVIS_FOCUSED);  
          m_listctrl.InsertItem(0,   "11111");  
          m_listctrl.InsertItem(1,   "22222");  
           
          m_listctrl.SetItemState(1,   LVIS_SELECTED,   LVIS_SELECTED);  
          UpdateData(false);  
   
          return   TRUE;  
  }  
   
  问题点数:50、回复次数:9Top

1 楼modena(非云)回复于 2006-03-09 17:06:47 得分 5

m_listctrl.ModifyStyle(   LVS_SHOWSELALWAYS,   0   );Top

2 楼abesky(神武皇)回复于 2006-03-09 17:08:05 得分 0

加样式   LVS_SHOWSELALWAYSTop

3 楼striking(庸人自扰)回复于 2006-03-09 17:08:05 得分 10

 
  BOOL   CTestDlg::OnInitDialog()  
  {  
          CDialog::OnInitDialog();  
          //。。。  
          m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT   |   LVIS_FOCUSED   |   LVS_SHOWSELALWAYS   );   /////LVS_SHOWSELALWAYS    
          m_listctrl.InsertItem(0,   "11111");  
          m_listctrl.InsertItem(1,   "22222");  
           
          m_listctrl.SetItemState(1,   LVIS_SELECTED,   LVIS_SELECTED);  
          UpdateData(false);  
   
  m_listctrl.SetFocus();  
   
          return   FALSE   ;////////  
  }Top

4 楼dippstar(求知)回复于 2006-03-09 17:52:41 得分 0

我试了,不行啊。  
  m_listctrl.ModifyStyle(LVS_SHOWSELALWAYS,   0);  
  m_listctrl.SetItemState(1,   LVIS_SELECTED,   LVIS_SELECTED);  
  效果是Dialog启动后,只有当鼠标放在listctrl控件的某一项上的时候(不用单击),这个条目自动被选中。  
  我的意思是,Dialog启动后,就自己默认某一项上被选中了,且为高亮显示了。如何做呢?Top

5 楼Snow_Ice11111(雪上加冰)回复于 2006-03-09 19:10:53 得分 5

m_cListCtrl.SetItemState(1,LVIS_SELECTED,   LVIS_SELECTED);  
  m_cListCtrl.SetFocus();  
  m_cListCtrl.EnsureVisible(1,true);Top

6 楼dippstar(求知)回复于 2006-03-10 08:13:05 得分 0

好像还是不行。Top

7 楼benxudong()回复于 2006-03-10 09:03:34 得分 15

OnInitDialog()函数最后有个return   TRUE,如果你稍微看一下解释就可以了  
  //   return   TRUE     unless   you   set   the   focus   to   a   control  
  也就是说,如果你要设置交点在某个控件上,必须不能return   true。  
  你return   False就可以了Top

8 楼laiyiling(陌生人[MVP])回复于 2006-03-10 09:17:20 得分 7

http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=210488  
  注意选中listctrl的show   selection   alwaysTop

9 楼abesky(神武皇)回复于 2006-03-10 11:06:50 得分 8

 
  m_wndList.ModifyStyle(0,   LVS_SHOWSELALWAYS   |   LVS_SINGLESEL);  
  m_wndList.SetExtendedStyle(m_wndList.GetExtendedStyle()   |   LVS_EX_FULLROWSELECT   |    
  LVS_EX_INFOTIP   |   LVS_EX_ONECLICKACTIVATE   |   LVS_EX_UNDERLINEHOT   );Top

相关问题

  • 怎样设置敲回车时,默认选中某控件?
  • 怎样设置combobox的项目被默认选中
  • 如何设置ComboBox 默认选中第一项
  • listctrl 如何设置条目为选中?
  • 在编辑框中,如何设置默认值的选中状态?
  • 多列ListCtrl中如何设置整个一行选中状态
  • 请问如何设置listctrl中某项为选中
  • 如何设置对话框上的复选框默认情况下是被选中的?
  • 关于stringgrid的默认选中问题!
  • TreeView 解决默认选中问题

关键词

  • listctrl
  • lvis
  • lvs
  • showselalways
  • 选中
  • setitemstate
  • 默认
  • oninitdialog
  • wndlist
  • setextendedstyle

得分解答快速导航

  • 帖主:dippstar
  • modena
  • striking
  • Snow_Ice11111
  • benxudong
  • laiyiling
  • abesky

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo