1、添加listbox设置horizontal scroll为true
2、新建类CNListBox,继承类CListBox
3、新类头文件声明如下:
#ifndef _IHLISTBOX_H_
#define _IHLISTBOX_H_
class CNListBox: public CListBox
{
.......
public:
int AddString( LPCTSTR lpszItem );
int InsertString( int nIndex, LPCTSTR lpszItem );
void RefushHorizontalScrollBar( void );
};
#endif
4、新类cpp文件代码如下
int CNListBox::AddString( LPCTSTR lpszItem )
{
int nResult = CListBox::AddString( lpszItem );
RefushHorizontalScrollBar();
return nResult;
}
int CNListBox::InsertString( int nIndex, LPCTSTR lpszItem )
{
int nResult = CListBox::InsertString( nIndex, lpszItem );
RefushHorizontalScrollBar();
return nResult;
}
void CNListBox::RefushHorizontalScrollBar( void )
{
CDC *pDC = this->GetDC();
if ( NULL == pDC )
{
return;
}
int nCount = this->GetCount();
if ( nCount < 1 )
{
this->SetHorizontalExtent( 0 );
return;
}
int nMaxExtent = 0;
CString szText;
for ( int i = 0; i < nCount; ++i )
{
this->GetText( i, szText );
CSize &cs = pDC->GetTextExtent( szText );
if ( cs.cx > nMaxExtent )
{
nMaxExtent = cs.cx;
}
}
this->SetHorizontalExtent( nMaxExtent );
}
5、可以在其他文件中使用该类
CPP文件中引用如下头文件
#include "NListBox.h"
#define LIST ((CNListBox* )(GetDlgItem(IDC_Point)))
添加字段代码如下:
LIST->AddString( _T("11111111111") );