怎么才能让list box控件的水平滚动条显示出来???

yangbc 2003-11-10 10:29:15
怎么才能让list box控件的水平滚动条显示出来???
我需要看到一整行内容,可是现在只有垂直滚动条
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
arvid_gs 2003-11-10
  • 打赏
  • 举报
回复
// The pointer to my list box.
extern CListBox* pmyListBox;

// Find the longest string in the list box.
CString str;
CSize sz;
int dx = 0;
TEXTMETRIC tm;
CDC* pDC = pmyListBox->GetDC();
CFont* pFont = pmyListBox->GetFont();

// Select the listbox font, save the old font
CFont* pOldFont = pDC->SelectObject(pFont);
// Get the text metrics for avg char width
pDC->GetTextMetrics(&tm);

for (int i = 0; i < pmyListBox->GetCount(); i++)
{
pmyListBox->GetText(i, str);
sz = pDC->GetTextExtent(str);

// Add the avg width to prevent clipping
sz.cx += tm.tmAveCharWidth;

if (sz.cx > dx)
dx = sz.cx;
}
// Select the old font back into the DC
pDC->SelectObject(pOldFont);
pmyListBox->ReleaseDC(pDC);

// Set the horizontal extent so every character of all strings
// can be scrolled to.
pmyListBox->SetHorizontalExtent(dx);
arvid_gs 2003-11-10
  • 打赏
  • 举报
回复
楼上的写的很好
flyelf 2003-11-10
  • 打赏
  • 举报
回复
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);
love_vc 2003-11-10
  • 打赏
  • 举报
回复
在对话框的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;
}
yangbc 2003-11-10
  • 打赏
  • 举报
回复
解决了,谢谢各位,给分
icer202 2003-11-10
  • 打赏
  • 举报
回复
如果你是手动创建(create)的list,则在风格中添加一项LVS_NOLABELWRAP,如果你是添加的list则选中水平滚动。

15,979

社区成员

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

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