CListBox类的成员函数有数十个之多.我们可以把一些常用的函数分为三类,在下面列出.需要说明的是,可以用索引来指定列表项,索引是从零开始的.
首先,CListBox成员函数提供了下列函数用于插入和删除列表项.
int AddString( LPCTSTR lpszItem );
该函数用来往列表框中加入字符串,其中参数lpszItem指定了要添加的字符串.函数的返回值是加入的字符串在列表框中的位置,如果发生错误,会返回LB_ERR或LB_ERRSPACE(内存不够).如果列表框未设置LBS_SORT风格,那么字符串将被添加到列表的末尾,如果设置了LBS_SORT风格,字符串会按排序规律插入到列表中.
int InsertString( int nIndex, LPCTSTR lpszItem );
该函数用来在列表框中的指定位置插入字符串.参数nIndex给出了插入位置(索引),如果值为-1,则字符串将被添加到列表的末尾.参数lpszItem指定了要插入的字符串.函数返回实际的插入位置,若发生错误,会返回LB_ERR或LB_ERRSPACE.与AddString函数不同,InsertString函数不会导致LBS_SORT风格的列表框重新排序.不要在具有LBS_SORT风格的列表框中使用InsertString函数,以免破坏列表项的次序.
int DeleteString( UINT nIndex );
该函数用于删除指定的列表项,其中参数nIndex指定了要删除项的索引.函数的返回值为剩下的表项数目,如果nIndex超过了实际的表项总数,则返回LB_ERR.
void ResetContent( );
该函数用于清除所有列表项.
int Dir( UINT attr, LPCTSTR lpszWildCard );
该函数用来向列表项中加入所有与指定通配符相匹配的文件名或驱动器名.参数attr为文件类型的组合,如表6.11所示.参数lpszWildCard指定了通配符(如*.cpp,*.*等).
表6.11 Dir函数attr参数的含义
值
含义
0x0000
普通文件(可读写的文件).
0x0001
只读文件.
0x0002
隐藏文件.
0x0004
系统文件.
0x0010
目录.
0x0020
文件的归档位已被设置.
0x4000
包括了所有与通配符相匹配的驱动器.
0x8000
排除标志.若指定该标志,则只列出指定类型的文件名,否则,先要列出普通文件,然后再列出指定的文件.
下列的CListBox成员函数用于搜索、查询和设置列表框.
int GetCount( ) const;
该函数返回列表项的总数,若出错则返回LB_ERR.
int FindString( int nStartAfter, LPCTSTR lpszItem ) const;
该函数用于对列表项进行与大小写无关的搜索.参数nStartAfter指定了开始搜索的位置, 合理指定nStartAfter可以加快搜索速度,若nStartAfter为-1,则从头开始搜索整个列表.参数lpszItem指定了要搜索的字符串.函数返回与lpszItem指定的字符串相匹配的列表项的索引,若没有找到匹配项或发生了错误,函数会返回LB_ERR.FindString函数先从nStartAfter指定的位置开始搜索,若没有找到匹配项,则会从头开始搜索列表.只有找到匹配项,或对整个列表搜索完一遍后,搜索过程才会停止,所以不必担心会漏掉要搜索的列表项.
int GetText( int nIndex, LPTSTR lpszBuffer ) const;
void GetText( int nIndex, CString& rString ) const;
用于获取指定列表项的字符串.参数nIndex指定了列表项的索引.参数lpszBuffer指向一个接收字符串的缓冲区.引用参数rString则指定了接收