ListBox设置水平滚动条

为ListBox关联控件变量m_ListBox

for (int i=0; i<=20; ++i)

{

  m_List.AddString(L"123456789123456789123456789123456789123456789");

}


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

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

 

void CTestDlg::SetHScroll()

{

    CDC* dc = GetDC();

    SIZE s;

    int index;

    CString str;

    long temp;

    for(index= 0; index< m_List.GetCount(); index++)

    {

        m_List.GetText(index,str);

        s = dc->GetTextExtent(str,str.GetLength()+1);   // 获取字符串的像素大小

        // 如果新的字符串宽度大于先前的水平滚动条宽度,则重新设置滚动条宽度

        // IDC_LISTBOX为m_List的资源ID

        temp = (long)SendDlgItemMessage(IDC_LIST1, LB_GETHORIZONTALEXTENT, 0, 0); //temp得到滚动条的宽度

        if (s.cx > temp)  

        {

            SendDlgItemMessage(IDC_LIST1, LB_SETHORIZONTALEXTENT, (WPARAM)s.cx,

0);

        }

    }

    ReleaseDC(dc);

}

转载于:https://www.cnblogs.com/aoyihuashao/archive/2012/10/25/2739206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值