MFC:列表框设置选择行的问题

lordor 2004-07-14 11:49:45
请问一下谁知道怎么设置一个选择行,即指定行高亮显示。
如列表框中有100行,我想让它默认时选择在第50行。我查了MSDN列表框的操作函数,好像没有相关的内容。谁能回答一下

...全文
198 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lordor 2004-07-15
  • 打赏
  • 举报
回复
to:maxcode(zhangjianfang):SetCurSel不是CListCtrl的成员函数
to: lixiaosan(小三):如果是要设置的行可见,就会成功,但如果要设置的行要往后翻屏的话就不起作用啊.
lixiaosan 2004-07-15
  • 打赏
  • 举报
回复
m_list.SetFocus();
m_list.SetItemState(49, LVIS_SELECTED|LVIS_FOCUSED,
LVIS_SELECTED|LVIS_FOCUSED);
lixiaosan 2004-07-15
  • 打赏
  • 举报
回复
BOOL EnsureVisible(
int nItem,
BOOL bPartialOK );


m_list.SetFocus();
m_list.SetItemState(49, LVIS_SELECTED|LVIS_FOCUSED,
LVIS_SELECTED|LVIS_FOCUSED);
m_list.EnsureVisible(49, FALSE);
门吹西风 2004-07-15
  • 打赏
  • 举报
回复
SetCurSel是 listbox的方法
m_ListCtrl.SetItemState(4, LVIS_SELECTED, LVIS_SELECTED);
msdn上有这样的例子:
//下面的内容拷贝自msdn
CListCtrl::GetTopIndex
int GetTopIndex( ) const;

Return Value

The index of the topmost visible item.

Remarks

Retrieves the index of the topmost visible item when in list view or report view.

Example

// The pointer to my list view control.
extern CListCtrl* pmyListCtrl;

// Make sure the focus is set to the list view control.
pmyListCtrl->SetFocus();

// Select all of the items that are completely visible.
int n = pmyListCtrl->GetTopIndex();
int nLast = n + pmyListCtrl->GetCountPerPage();

for (;n < nLast;n++)
{
pmyListCtrl->SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);
ASSERT(pmyListCtrl->GetItemState(n, LVIS_SELECTED) == LVIS_SELECTED);
}

lixiaosan 2004-07-14
  • 打赏
  • 举报
回复
m_list.SetFocus();
m_list.SetItemState(50, LVIS_SELECTED|LVIS_FOCUSED,
LVIS_SELECTED|LVIS_FOCUSED);
maxcode 2004-07-14
  • 打赏
  • 举报
回复
SetCurSel (49);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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