如何在listctrl中设置某项被默认选中?
我在初始化函数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




