我在初始化函数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;
}
{
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;
}
解决方案 »
- windows虚拟内存管理的单位是64k对吧,在VC运行时库的源代码里面能看出来么?
- 如何使EditBox控件根据文字输入长度自动改变大小?
- 有用过MapWindow经验的人进来一下!!在线等!
- 有关systray的问题。请大家帮忙看看。
- <新手 白痴问题>关于弹出对话框问题
- 简单的问题,求帮忙
- 我重载了个CEdit,为什么在设计器上通过添加变量创建的控件,和用代码Create创建的控件,效果不一样?
- setwizardbuttons使用
- 听说MFC将要被新的类库所替换,,真的吗?
- 求助,用程序实现windows注销、登陆。。。(请进)
- 试用期Leader叫我看看《visual c++技术内幕》编程真的累啊!
- MessageBox阻塞,而AfxMessageBox不阻塞??
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 ;////////
}
m_listctrl.ModifyStyle(LVS_SHOWSELALWAYS, 0);
m_listctrl.SetItemState(1, LVIS_SELECTED, LVIS_SELECTED);
效果是Dialog启动后,只有当鼠标放在listctrl控件的某一项上的时候(不用单击),这个条目自动被选中。
我的意思是,Dialog启动后,就自己默认某一项上被选中了,且为高亮显示了。如何做呢?
m_cListCtrl.SetFocus();
m_cListCtrl.EnsureVisible(1,true);
// return TRUE unless you set the focus to a control
也就是说,如果你要设置交点在某个控件上,必须不能return true。
你return False就可以了
注意选中listctrl的show selection always
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 );