VC ListBox列表框实现自动水平滚动功能

本文介绍如何在不创建CListBox派生类的情况下,通过CListBox::SetHorizontalExtent()函数来实现列表框的自动水平滚动功能。在对话框CMyDlg中添加列表框,设置Horizontal Scroll为true,并通过AddString, InsertString等操作,配合调整滚动条的代码来达成目的。" 121297842,8259274,CSS代码中的红色与绿色区域面积计算,"['前端开发', 'CSS', '网页布局']
摘要由CSDN通过智能技术生成

利用CListBox::SetHorizontalExtent()成员可实现该功能。网上可行的方法主要是添加一个CListBox的派生类,并重载其AddString, InsertString方法。虽然使用方便,但是额外添加一个类。本文在不添加派生类的情况下实现该功能。

1. 首先建立一个对话框CMyDlg的应用程序,添加一个列表框、三个按钮(添加、编辑、删除),列表框右键属性-》Horizontal Scroll设置为true。

2. 为CMyDlg添加成员函数AdjustHScroll,代码如下:

void CMyDlg::AdjustHScroll(CListBox *pl)
{
	// Find the longest string in the list box.
	CString    strText;
	CSize      sz;
	int        dx = 0;
	TEXTMETRIC tm;
	CDC*       pDC = pl->GetDC();
	CFont*     pFont = pl->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 < pl->GetCount(); i++
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值