最近使用到MFC中ListBox Control控件,在控件的属性中存在水平滚动条和垂直滚动条的设置,本以为都设置为True即可,可实际效果却不是这样。实际使用时只有垂直滚动条起效果,水平滚动条没出现。经过查找资料,找到一个便捷的解决方法。现将完整步骤整理下来:
1,首先在ListBox控件的属性中将“Horizontal Scroll”设置为True。
2,为ListBox添加关联变量 :CListBox m_ListBox。
3,在程序初始化部分添加如下代码,设置ListBox水平范围,只要设置的值大于ListBox控件的长度,就会出现水平滚动条:
m_ListBox.SetHorizontalExtent(1000);
其中,1000是指ListBox的Item的最大长度,可根据具体设置。
函数原型:
CListBox::SetHorizontalExtent
void SetHorizontalExtent( int cxExtent );
参数: cxExtent 指定列表框可水平滚动的像素数。
说明:
1)设置列表框可水平滚动的宽度,用像素表示。如果列表框大小小于此值,水平滚动条将水平滚动列表框中的项。如果列表框与此值一样大或更大,水平滚动条被隐藏。
2)回应对SetHorizontalExtent的调用,列表框必须定义为WS_HSCROLL风格。
3)此成员函数对多列的列表框有用。对多列列表框调用SetColumnWidth成员函数。