MFC 中ListBox设置水平滚动条

78 篇文章 2 订阅

为ListBox关联控件变量m_ListBox

  1. for (int i=0; i<=20; ++i)
  2. {
  3.     m_List.AddString(L"123456789123456789123456789123456789123456789");
  4. }


当ListBox控件加入的字符串宽度过长时,新加入的有些字符串就不能显示,此时就需要加入水平滚动条

先将ListBox的Horizontal Scroll勾选上
在对话框CTestDlg类中加入SetHScroll成员函数

  1. void CTestDlg::SetHScroll()
  2. {
  3.     CDC* dc = GetDC();
  4.     SIZE s;
  5.     int index;
  6.     CString str;
  7.     long temp;
  8.     for(index= 0; index< m_List.GetCount(); index++)
  9.     {
  10.         m_List.GetText(index,str);
  11.         s = dc->GetTextExtent(str,str.GetLength()+1);   // 获取字符串的像素大小
  12.         // 如果新的字符串宽度大于先前的水平滚动条宽度,则重新设置滚动条宽度
  13.         // IDC_LISTBOX为m_List的资源ID
  14.         temp = (long)SendDlgItemMessage(IDC_LIST1, LB_GETHORIZONTALEXTENT, 0, 0); //temp得到滚动条的宽度
  15.         if (s.cx > temp)  
  16.         {
  17.             SendDlgItemMessage(IDC_LIST1, LB_SETHORIZONTALEXTENT, (WPARAM)s.cx, 0);
  18.         }
  19.     }
  20.     ReleaseDC(dc);
  21. }



之后只要在ListBox加入条目之后调用SetHScroll

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值