listbox怎么才能显示滚动条?

.net中想做一个类似于qq好友列表的效果for(inti=0;i<11;i++){pannelpannel=newpannel();pannel.location=ne... .net中想做一个类似于qq好友列表的效果
for (int i = 0; i < 11; i++)
{
pannel pannel=new pannel();
pannel.location=new point(0,i*50);
listBox1.Controls.Add(pannel1);
}
如此添加后,listbox怎么才能显示滚动条?
展开
 我来答
匿名用户
2013-06-19
展开全部
在对话框的oninitdialog中对于listbox添加完项目后,调用下面的函数即可以了。
SetListboxHorz(m_yourlistbox);

int SetListboxHorz( CListBox &listbox )
{
CString Name;
CSize Size;
CDC * DeviceContent = 0;
long Width = 0;
long Count = 0;

Count = listbox.GetCount();
if ( Count )
{
DeviceContent = listbox.GetDC();
for ( long Index = 0; Index < Count; Index++ )
{
listbox.GetText( Index, Name );
Size = DeviceContent-> GetTextExtent( Name );

if ( Size.cx > Width )
Width = Size.cx;
}
listbox.ReleaseDC( DeviceContent );
}
listbox.SetHorizontalExtent( Width );

return TRUE;
} 或者:CPaintDC dc(this);
CSize sz;
int max_width=0;
m_listbox.AddString( "xxxxx ");
sz=dc.GetTextExtent( "xxxxx ");
if(max_width <sz.cx)
max_width=sz.cx;
m_listbox.SendMessage(LB_SETHORIZONTALEXTENT,max_width,0);
匿名用户
2013-06-19
展开全部
从CListBox继承一个自己的类CMyListBox,然后重载AddString()
int CMyListBox::AddString(LPCTSTR lpszItem)
{
int iResult = CListBox::AddString(lpszItem);
this->SetCurSel(this->GetCount()-1);
return iResult;
}
然后你的listbox控件用CMylistbox

或者
设置 LVS_SHOWSELALWAYS 风格,始终选择刚添加的条目
m_ListCtrl.SetItemState(nIndex,LVIS_SELECTED,LVIS_SELECTED);
其中 nIndex 就是你刚插入 条目的索引。
然后:
m_ListCtrl.EnsureVisible(nIndex,TRUE);

还有一种方式,每次在listbox中添加数据不用addstring

insertstring(0,str);
也就是每次在listbox首部插入string。这样不滚动也可以显示最新的信息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-19
展开全部
listbox1的ScrollAlwaysVisible属性设为True
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式