为列表控件CListBox添加水平滚动条

原文:点击打开链接

为列表控件CListBox添加水平滚动条
Win32的标准控件之中,列表控件(ListBox)并没有和列表视图(ListView)一样提供水平滚动条,所以如果列表项的长度超过列表的宽度,超出的部分将无法显示。可使用SDK来解决这一问题:
1)打开列表控件的属性框,将Stype中的Horizonal scroll钩选
2)在为ListBox添加文本的代码后调用下面的函数:
void CMyDlg::SetHScroll()
{
CDC* dc = GetDC();
SIZE s;
int i;
TCHAR str[100];
HDC hdc = dc->m_hDC; // 获得相关设备句柄
for(i = 0; i < m_listBox.GetCount(); i++)
{
m_listBox.GetText(i, str);
GetTextExtentPoint32(hdc, str, lstrlen(str), &s); // 获取字符串的像素大小
// 如果新的字符串宽度大于先前的水平滚动条宽度,则重新设置滚动条宽度
// IDC_LISTBOX为m_listBox的资源ID
if (s.cx > (LONG)SendDlgItemMessage(IDC_LISTBOX, LB_GETHORIZONTALEXTENT, 0, 0))
SendDlgItemMessage(IDC_LISTBOX, LB_SETHORIZONTALEXTENT, (WPARAM)s.cx, 0);
}
ReleaseDC(dc);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值