文档介绍:第9章 MFC通用类
MFC类库除了提供封装Windows界面元素对象的类,如CWnd、CMenu、CDialog等,还提供了一些通用的类。本章主要叙述字符串类、日期时间类和集合类的使用及主要成员函数,最后结合实例,说明使用该类的方法和技巧。
字符串类-Cstring
CString类构造函数的版本很多,它们的函数原型如下:
CString( ); //构造空字符串
CString( const CString& stringSrc ); //拷贝已有字符串内容,构造新的字符串
CString( TCHAR ch, int nRepeat = 1 );
//用重复的字符构造新的字符串,字符由参数ch表明,重复次数由nRepeat决定
CString( LPCTSTR lpch, int nLength );
//拷贝字符数组的内容构造字符串,lpch为指向数组的指针,nLength为数组长度
CString( const unsigned char* psz );
//拷贝以'\0'结尾的字符串内容,构造新的字符串,psz为指向字符串的指针
CString( LPCWSTR lpsz );
CString( LPCSTR lpsz );
//拷贝lpsz指定字符串内容构造Unicode字符串
(1)int GetLength( ) const;
函数返回字符串对象中的字符数,不包括最后的\‘0’。
(2)BOOL IsEmpty( ) const;
函数判断字符串对象是否为空,即包含的字符数为0。如果为空,返回值为TRUE,否则,返回值为FALSE。
(3)void Empty( );
函数强制清空字符串对象,使其包含的字符数为0。清空字符串对象后,调用GetLength函数的返回值为0。
(4)TCHAR GetAt( int nIndex ) const;
函数返回字符串对象中由nIndex索引值指定单个字符,索引以0为基础,第一个字符对应的索引值为0。nIndex的值必须大于或等于0,小于字符串中字符的总数,在MFC调试版本中,程序将检测nIndex是否为合法值,而在Release版本中,将不进行检测。
(5)operator LPCTSTR ( ) const;
操作符返回一个指向包含在CString类对象中的以‘\0’结尾的字符串的const char *指针,返回的指针是只读的,不能对其进行修改。
CString类重载了“=”、“+”、“+=”三个运算符,以实现字符串之间的赋值和串联运算。
(1)比较操作符
CString类重载了“==”、“!=”、“>”、“<”、“>=”、“<=”操作符,以实现对字符串的比较操作,可以进行字符串对象之间、字符串对象和LPCTSTR字符串、字符串对象和字符指针之间的比较,比较操作是大小写敏感的。
(2)pare( LPCTSTR lpsz ) const;
将字符串类对象与lpsz比较,如果相等,返回值为0;如果比lpsz大,返回值大于0;如果比lpsz小,返回值小于0。
(1)CString Left( int nCount ) const;
Left函数提取字符串对象最开始(左侧)的若干字符,将所提取子串的拷贝作为返回值。截取字符的数量由参数nCount决定,当nCount大于字符串长度时,整个字符串被提取。操作后,原始字符串未发生变化。
(2)CString Right( int nCount ) const;
与Left函数调用类似,Right函数调用提取字符串右侧(末尾)的若干字符。
(3)CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
Mid函数调用从字符串对象中间开始提取子串,开始位置由nFirst参数指定,提取字符数由参数nCount指定,当省略参数nCount,表示从nFirst开始,提取余下的所有字符。
CString s1( "abcdef" );
CString s2= ( 2,3 ); // s2= "cde"
(1)void MakeUpper( );
将字符串中的所有小写字母转换为大写。
(2)void MakeLower( );
将字符串中的所有大写字母转换为小写。
(3)void MakeReverse( );
反转字符串对象中所有字符的排列顺序。
(4)int Replace( TCHAR chOld, TCHAR chNew