一个ListBox控件怎么显示横向的滚动条?

rmryt 2004-12-01 12:40:30
一个类型为CListBox的控件,属性中选了Horizaontal scroll和vscroll,当不断往里面AddString()的时候,竖向的滚动条就出来了。但是当AddString(str)中的str很长时,横向滚动条并没有出来,这样就无法完全显示str。该怎么办。我试了几种属性组合都不行。应该如何设置属性?或者就、还是要舔加代码?
...全文
570 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
handwolf 2004-12-01
  • 打赏
  • 举报
回复
楼上的正确!
快乐鹦鹉 2004-12-01
  • 打赏
  • 举报
回复
我告诉你好了。
CListBox::SetHorizontalExtent
void SetHorizontalExtent( int cxExtent );

用这个函数设置横向的滚动长度。

Example

// The pointer to my list box.
extern CListBox* pmyListBox;

// Find the longest string in the list box.
CString str;
CSize sz;
int dx=0;
CDC* pDC = pmyListBox->GetDC();
for (int i=0;i < pmyListBox->GetCount();i++)
{
pmyListBox->GetText( i, str );
sz = pDC->GetTextExtent(str);

if (sz.cx > dx)
dx = sz.cx;
}
pmyListBox->ReleaseDC(pDC);

// Set the horizontal extent so every character of all strings
// can be scrolled to.
pmyListBox->SetHorizontalExtent(dx);

handwolf 2004-12-01
  • 打赏
  • 举报
回复
m_lstBox1.ShowScrollBar(0,TRUE);
rmryt 2004-12-01
  • 打赏
  • 举报
回复
有没有人告诉我啊?
rmryt 2004-12-01
  • 打赏
  • 举报
回复
哈哈,m_lstBox1.ShowScrollBar(0,TRUE);那个不行呢。开始是会出现一个scrollbar,但是鼠标一碰就消失了。happyparrot(快乐鹦鹉)真是强。连这个方法都想得到。不过每次AddString(),就应该用一次该方法。可是listbox控件的响应事件只有6种,找不到类似于textchanged这样的事件。所以我只有一开始SetHorizontalExtent(某个非常大的值)了。能不能自己添加事件呢?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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