关于MFC中CString的用法

作者&投稿:壹蓝 (若有异议请与网页底部的电邮联系)
C/C++ 中cstring用法?~

CString的构造函数
CString( );
例:CString csStr;
CString( const CString& stringSrc );
例:CString csStr("ABCDEF中文123456");
CString csStr2(csStr);
CString( TCHAR ch, int nRepeat = 1 );
例:CString csStr('a',5);
//csStr="aaaaa"
CString( LPCTSTR lpch, int nLength );
例:CString csStr("abcdef",3);
//csStr="abc"
CString( LPCWSTR lpsz );
例:wchar_t s[]=L"abcdef";
CString csStr(s);
//csStr=L"abcdef"
CString( const unsigned char* psz );
例:const unsigned char s[]="abcdef";
const unsigned char* sp=s;
CString csStr(sp);
//csStr="abcdef"
CString( LPCSTR lpsz );
例:CString csStr("abcdef");
//csStr="abcdef"
int GetLength( ) const;
返回字符串的长度,不包含结尾的空字符。
例:csStr="ABCDEF中文123456";
printf("%d",csStr.GetLength()); //16
void MakeReverse( );
颠倒字符串的顺序
例:csStr="ABCDEF中文123456";
csStr.MakeReverse();
cout<<csStr; //654321文中FEDCBA
void MakeUpper( );
将小写字母转换为大写字母
例:csStr="abcdef中文123456";
csStr.MakeUpper();
cout<<csStr; //ABCDEF中文123456
void MakeLower( );
将大写字母转换为小写字母
例:csStr="ABCDEF中文123456";
csStr.MakeLower();
cout<<csStr; //abcdef中文123456
int Compare( LPCTSTR lpsz ) const;
区分大小写比较两个字符串,相等时返回0,大于时返回1,小于时返回-1
例:csStr="abcdef中文123456";
csStr2="ABCDEF中文123456";
cout<<csStr.CompareNoCase(csStr2); //0
int CompareNoCase( LPCTSTR lpsz ) const;
不区分大小写比较两个字符串,相等时返回0,大于时返回1,小于时返回-1
例:csStr="abcdef中文123456";
csStr2="ABCDEF中文123456";
cout<<csStr.CompareNoCase(csStr2); //-1
int Delete( int nIndex, int nCount = 1 )
删除字符,删除从下标nIndex开始的nCount个字符
例:csStr="ABCDEF";
csStr.Delete(2,3);
cout<<csStr; // ABF
//当nIndex过大,超出对像所在内存区域时,函数没有任何操作。
//当nIndex为负数时,从第一个字符开始删除。
//当nCount过大,导致删除字符超出对像所在内存区域时,会发生无法预料的结果。
//当nCount为负数时,函数没有任何操作。
int Insert( int nIndex, TCHAR ch )
int Insert( int nIndex, LPCTSTR pstr )
在下标为nIndex的位置,插入字符或字符串。返回插入后对象的长度
例:csStr="abc";
csStr.Insert(2,'x');
cout<<csStr; //abxc
csStr="abc";
csStr.Insert(2,"xyz");
cout<<csStr; //abxyzc
//当nIndex为负数时,插入在对象开头
//当nIndex超出对象末尾时,插入在对象末尾
int Remove( TCHAR ch );
移除对象内的指定字符。返回移除的数目
例:csStr="aabbaacc";
csStr.Remove('a');
cout<<csStr; //bbcc
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
替换字串
例:csStr="abcdef";
csStr.Replace('a','x');
cout<<csStr; //xbcdef
csStr="abcdef";
csStr.Replace("abc","xyz");
cout<<csStr; //xyzdef
void TrimLeft( );
void TrimLeft( TCHAR chTarget );
void TrimLeft( LPCTSTR lpszTargets );
从左删除字符,被删的字符与chTarget或lpszTargets匹配,一直删到第一个不匹配的字符为止
例:csStr="aaabaacdef";
csStr.TrimLeft('a');
cout<<csStr; //baacdef
csStr="aaabaacdef";
csStr.TrimLeft("ab");
cout<<csStr; //cdef
//无参数时删除空格
void TrimRight( );
void TrimRight( TCHAR chTarget );
void TrimRight( LPCTSTR lpszTargets );
从右删除字符,被删的字符与chTarget或lpszTargets匹配,一直删到第一个不匹配的字符为止
例:csStr="abcdeaafaaa";
csStr.TrimRight('a');
cout<<csStr; //abcdeaaf
csStr="abcdeaafaaa";
csStr.TrimRight("fa");
cout<<csStr; //abcde
//无参数时删除空格
void Empty( );
清空
例:csStr="abcdef";
csStr.Empty();
printf("%d",csStr.GetLength()); //0
BOOL IsEmpty( ) const;
测试对象是否为空,为空时返回零,不为空时返回非零
例:csStr="abc";
cout<<csStr.IsEmpty(); //0;
csStr.Empty();
cout<<csStr.IsEmpty(); //1;
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
查找字串,nStart为开始查找的位置。未找到匹配时返回-1,否则返回字串的开始位置
int FindOneOf( LPCTSTR lpszCharSet ) const;
查找lpszCharSet中任意一个字符在CString对象中的匹配位置。未找到时返回-1,否则返回字串的开始位置
CString SpanExcluding( LPCTSTR lpszCharSet ) const;
返回对象中与lpszCharSet中任意匹配的第一个字符之前的子串
CString SpanIncluding( LPCTSTR lpszCharSet ) const;
从对象中查找与lpszCharSe中任意字符不匹配的字符,并返回第一个不匹配字符之前的字串
int ReverseFind( TCHAR ch ) const;
从后向前查找第一个匹配,找到时返回下标。没找到时返回-1
void Format( LPCTSTR lpszFormat, ... );
void Format( UINT nFormatID, ... );
格式化对象,与C语言的sprintf函数用法相同
TCHAR GetAt( int nIndex ) const;
返回下标为nIndex的字符,与字符串的[]用法相同
//当nIndex为负数或超出对象末尾时,会发生无法预料的结果。
void SetAt( int nIndex, TCHAR ch );
给下标为nIndex的字符重新赋值
CString Left( int nCount ) const;
从左取字串
CString Right( int nCount ) const;
从右取字串
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
从中间开始取字串
LPTSTR GetBuffer( int nMinBufLength );
申请新的空间,并返回指针
void ReleaseBuffer( int nNewLength = -1 );
使用GetBuffer后,必须使用ReleaseBuffer以更新对象内部数据
LPTSTR GetBufferSetLength( int nNewLength );
申请新的空间,并返回指针
1.CString::IsEmpty
BOOL IsEmpty( ) const;
返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。
说明:此成员函数用来测试一个CString 对象是否是空的。
2.CString::Left
CString Left( int nCount ) const;
throw( CMemoryException );
返回值:返回的字符串是前nCount个字符。
返回值:如果加载资源成功则返回非零值;否则返回0。
nID 一个Windows 字符串资源ID。
说明: 此成员函数用来读取一个由nID 标识的Windows 字符串资源,并放入一个已有CString 对象中。
4.CString::MakeLower
void MakeLower( ); //改变字符的小写
5.CString::MakeReverse
void MakeReverse( ); //字符倒置
6.CString::MakeUpper
void MakeUpper( ); //改变字符的大写
7.CString::Mid
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
nCount代表要提取的字符数, nFirst代表要提取的开始索引位置
8.CString::ReleaseBuffer
void ReleaseBuffer( int nNewLength = -1 );
参数:nNewLength
此字符串的以字符数表示的新长度,不计算结尾的空字符。如果这个字
符串是以空字符结尾的,则参数的缺省值-1 将把CString 的大小设置为
字符串的当前长度。
说明:
使用ReleaseBuffer 来结束对由GetBuffer 分配的缓冲区的使用。如果你知道缓
冲区中的字符串是以空字符结尾的,则可以省略nNewLength 参数。如果字符
串不是以空字符结尾的,则可以使用nNewLength 指定字符串的长度。在调用
ReleaseBuffer 或其它CString 操作之后,由GetBuffer 返回的地址是无效的。
9.CString::Remove
int CString::Remove ( TCHAR ch );
返回值:返回从字符串中移走的字符数。如果字符串没有改变则返回零。
参数:ch 要从一个字符串中移走的字符。
说明:此成员函数用来将ch 实例从字符串中移走。与这个字符的比较是区分大小写
的。
10.CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值:返回被替换的字符数。如果这个字符串没有改变则返回零。
参数:chOld 要被chNew 替换的字符。
chNew 要用来替换chOld 的字符。
lpszOld 一个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。
LpszNew 一个指向字符串的指针,该字符串包含了要用来替换lpszOld 的字符。
说明:此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew
现场替换chOld。函数的第二个原形用lpszNew 指定的字符串替换lpszOld 指定
的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度
不需要是相等的。两种版本形式都进行区分大小写的匹配。
11.CString::ReverseFind
int ReverseFind( TCHAR ch ) const;
返回值: 返回此CString 对象中与要求的字符匹配的最后一个字符的索引;如果没有找
到需要的字符则返回-1。
参数: ch 要搜索的字符。
说明:此成员函数在此CString 对象中搜索与一个子串匹配的最后一个字符。此函数
类似于运行时函数strrchr。
12.CString::Right
CString Right( int nCount ) const;
throw( CMemoryException );
返回值: 返回的字符串是最后nCount个字符。
CString s( _T("abcdef") );
ASSERT( s.Right(2) == _T("ef") );
13.CString:: SetAt
void SetAt( int nIndex, TCHAR ch );
说明:可以把字符串理解为一个数组,SetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。 Ch 更替字符, 把nIndex位置上的字符 变成ch
14.CString::TrimLeft
void TrimLeft( );
void CString::TrimLeft( TCHAR chTarget );
说明:如果没有参数,从左删除字符(
空格等),至到遇到一个非此类字符. 当然你也可以指定删除那些字符. 如果指定的参数是字符串,那么遇上其中的一个字符就删除.

换行符
TAB字符
15.CString::TrimRight
void TrimRight( );
void CString::TrimRight( TCHAR chTarget );
void CString::TrimRight( LPCTSTR lpszTargets );
说明:用法类似于上面。
16.CString::Compare
int Compare( LPCTSTR lpsz ) const;
返回值:字符串一样返回0,小于lpsz 返回-1,大于lpsz 返回1, 区分大小字符
17.CString::Collate
int Collate( LPCTSTR lpsz ) const;
同CString::Compare
18.CString::CollateNoCase
int CollateNocase( LPCTSTR lpsz ) const;
同CString::CompareNoCase
19.CString::CString //构造函数
CString( );
CString( const CString& stringSrc );
CString( TCHAR ch, int nRepeat = 1 );
CString( LPCTSTR lpch, int nLength );
CString( const unsigned char* psz );
CString( LPCWSTR lpsz );
CString( LPCSTR lpsz );
20.CString::Delete
int Delete( int nIndex, int nCount = 1);
返回值:是被删除前的字符串的长度
nIndex是第一个被删除的字符,nCount是一次删除几个字符。根据我实验得出的结果:当nCount>要删除字符串的最大长度(GetCount() - nIndex)时会出错,当nCount过大,没有足够的字符删除时,此函数不执行。
21.CString::Empty
Void Empty( );
返回值:没有返回值 清空操作;
22.CString::Find
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;
返回值: 不匹配的话返回 -1; 索引以0 开始; nStar 代表以索引值nStart 的字符开始搜索 ,
即为包含以索引nStart字符后的字符串.
23.CString::FindOneOf
int FindOneOf( LPCTSTR lpszCharSet ) const;
返回值: 不匹配的话返回 -1; 索引以0 开始
注意::返回此字符串中第一个在lpszCharSet中也包括字符并且从零开始的索引值
24.CString::Format
void Format( LPCTSTR lpszFormat, ... );
void Format( UINT nFormatID, ... );
参数:lpszFormat 一个格式控制字符串
nFormatID 字符串标识符
25.CString::GetAt
TCHAR GetAt( int nIndex ) const;
返回值:返回标号为nIndex的字符,你可以把字符串理解为一个数组,GetAt类似于[].注意nIndex的范围,如果不合适会有调试错误。
26.CString::GetBuffer
LPTSTR GetBuffer( int nMinBufLength );
返回值:一个指向对象的(以空字符结尾的)字符缓冲区的LPTSTR 指针。
参数:nMinBufLength
字符缓冲区的以字符数表示的最小容量。这个值不包括一个结尾的空字符的空间。
说明:此成员函数返回一个指向CString 对象的内部字符缓冲区的指针。返回的LPTSTR 不是const,因此可以允许直接修改CString 的内容。如果你使用由GetBuffer 返回的指针来改变字符串的内容,你必须在使用其它的CString 成员函数之前调用ReleaseBuffer 函数。
在调用ReleaseBuffer 之后,由GetBuffer 返回的地址也许就无效了,因为其它的CString 操作可能会导致CString 缓冲区被重新分配。如果你没有改变此CString 的长度,则缓冲区不会被重新分配。当此CString 对象被销毁时,其缓冲区内存将被自动释放。
注意:如果你自己知道字符串的长度,则你不应该添加结尾的空字符。但是,当你用ReleaseBuffer 来释放该缓冲区时,你必须指定最后的字符串长度。如果你添加了结尾的空字符,你应该给ReleaseBuffer 的长度参数传递-1 ,ReleaseBuffer 将对该缓冲区执行strlen 来确定它的长度。
27.CString::GetLength
int GetLength( ) const;
返回值:返回字符串中的字节计数。
说明:此成员函数用来获取这个CString 对象中的字节计数。这个计数不包括结尾的空字符。
对于多字节字符集(MBCS),GetLength 按每一个8 位字符计数;即,在一个多字节字符中的开始和结尾字节被算作两个字节。
28.CString::Insert
int Insert( int nIndex, TCHAR ch );
int Insert( int nIndex, LPCTSTR pstr );
返回值:返回修改后的长度,nIndex是字符(或字符串)插入后的索引号例子

直接相加啊 重载了+操作符的!
cstring str1="abc";
cstring str2="efg";
str1=str1+str2; //str1就是abcefg

CString

CString没有基类。
一个CString对象由可变长度的一队字符组成。CString使用类似于Basic的语法提供函数和操作符。连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组容易使用。
CString是基于TCHAR数据类型的对象。如果在你的程序中定义了符号_UNICODE,则TCHAR被定义为类型wchar_t,即16位字符类型;否则,TCHAR被定义为char,即8位字符类型。在UNICODE方式下,CString对象由16位字符组成。非UNICODE方式下,CString对象由8位字符组成。
当不使用_UNICODE时,CString是多字节字符集(MBCS,也被认为是双字节字符集,DBCS)。注意,对于MBCS字符串,CString仍然基于8位字符来计算,返回,以及处理字符串,并且你的应用程序必须自己解释MBCS的开始和结束字节。
CString对象还具有下列特征: · CString可作为连接操作的结果而增大。
· CString对象遵循“值语义”。应将CString看作是一个真实的字符串而不是指向字符串的指针。
· 你可以使用CString对象任意替换const char*和LPCTSTR函数参数。
· 转换操作符使得直接访问该字符串的字符就像访问一个只读字符(C-风格的字符)数组一样。
提示:如果可能的话,应在框架中而不是堆中分配这个CString对象。这可以节省内存并简化参数的传递。
CString允许两个具有相同值的字符串共享相同的缓冲空间,这有助于你节省内存空间。但是,如果你初始直接改变该缓冲的内容(不使用MFC),则有可能在无意中改变了两个字符串。CString提供了两个成员函数CString::LockBuffer和CString::UnlockBuffer来帮助你保护你的数据。当你调用LockBuffer时,你就创建了一个字符串的一个拷贝,然后将引用计数设置为-1,这就“加锁”了该缓冲区。当缓冲区被加锁时,就没有其它的字符串可以引用该字符串中的数据,被加锁的字符串也不能引用其它字符串的数据。通过加锁该缓冲区内的字符串,就可以保证该字符串对数据的持续独占。当你使用完数据后,调用UnlockBuffer来将引用计数恢复为1。

CString类成员

构造 CString 以各种方法构造一个CString对象

字符串数组 GetLength 返回CString对象中的字符数。对多字节字符,按8位字符计算;即在一个多字节字符中一个开始和结束字节算作两个字符

IsEmpty 测试一个CString对象中是否不含有字符
Empty 强制一个字符串的长度为0
GetAt 返回在给定位置的字符
operator [] 返回在给定位置的字符--它是代替GetAt的操作符
SetAt 设置给定位置上的字符
operator LPCTSTR 像访问一个C风格的字符串一样,直接访问保存在一个CString对象中的字符

分配/串联 operator = 给CString对象赋一个新值
operator + 连接两个字符串并返回一个新字符串
operator += 把一个新字符串连接到一个已经存在的字符串的末端

比较 operator 比较操作符 比较操作符(大小写敏感)
Compare 比较两个字符串(大小写敏感)
CompareNoCase 比较两个字符串(不区分大小写)
Collate 比较两个字符串(大小写敏感,使用现场特别信息)
CollateNoCase 比较两个字符串(不区分大小写,使用现场特别信息)

提取 Mid 提取一个字符串的中间一部分(类似于BASIC的MID$函数)
Left 提取一个字符串的左边一部分(类似于BASIC的LEFT$函数)
Right 提取一个字符串的右边一部分(类似于BASIC的RIGHT$函数)
SpanIncluding 提取一个字符串,该子字符串中仅含有某一字符集合中的字符。
SpanExcluding 提取一个字符串,该子字符串中不含有某一字符集合中的字符。

其他转换 MakeUpper 将字符串中的所有字符转换为大写字符
MakeLower 将字符串中的所有字符转换为小写字符
MakeReverse 将字符串中的字符以倒序排列
Replace 用其它字符替换指定的字符
Remove 从一个字符串中移走指定的字符
Insert 在字符串中的给定索引处插入一个字符或一个子字符串
Delete 从一个字符串中删除一个或多个字符
Format 像sprintf函数一样格式化该字符串
FormatV 像vprintf函数一样格式化该字符串
TrimLeft 将字符串中前面的空格整理出字符串
TrimRight 将字符串中结尾的空格整理出字符串
FormatMessage 格式化一个消息字符串

搜索 Find 在一个较大的字符串中查找字符或子字符串
ReverseFind 在一个较大的字符串中从末端开始查找某个字符
FindOneOf 查找与某个字符集合中的字符相匹配的第一个字符

归档/存储 operator << 把一个CString对象插入一个存档或转储的环境中
operator >> 从一个存档中提取一个CString对象

缓冲区访问 GetBuffer 返回一个指向CString对象的指针
GetBufferSetLength 返回一个指向CString对象的指针,字符串被截断为指定的长度
ReleaseBuffer 释放对GetBuffer所返回的缓冲区的控制权
FreeExtra 通过释放原先为此字符串分配的额外内存来删除此字符串对象的额外开销
LockBuffer 使引用计数无效并保护缓冲区内的数据
UnlockBuffer 使引用计数有效并释放缓冲区中的数据

Windows专用 AllocSysString 由CString数据分配一个BSTR
SetSysString 使用CString对象中的数据来设置一个已存在的BSTR
LoadString 从一个Windows资源中加载一个已经存在的CString对象
AnsiToOem 实现由ANSI字符集到OEM字符集的对应转换
OemToAnsi 实现由OEM字符集到ANSI字符集的对应转换

其实最详细的资料是MSDN

CString 是一种很有用的MFC数据类型。
它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。
1、CString 对象的连接
能体现出 CString 类型方便性特点的一个方面就字符串的连接,使用 CString 类型,你能很方便地连接两个字符串,正如下面的例子:
CString gray("Gray");
CString cat("Cat");
CString graycat = gray + cat;
要比用下面的方法好得多:
char gray[] = "Gray";
char cat[] = "Cat";
char * graycat = malloc(strlen(gray) + strlen(cat) + 1);
strcpy(graycat, gray);
strcat(graycat, cat);

2、
CString 型转化成 int 型
CString 类型的数据转化成整数类型最简单的方法就是使用标准的字符串到整数转换例程。
虽然通常你怀疑使用_atoi()函数是一个好的选择,它也很少会是一个正确的选择。如果你准备使用 Unicode 字符,你应该用_ttoi(),它在 ANSI 编码系统中被编译成_atoi(),而在 Unicode 编码系统中编译成_wtoi()。你也可以考虑使用_tcstoul()或者_tcstol(),它们都能把字符串转化成任意进制的长整数(如二进制、八 进制、十进制或十六进制),不同点在于前者转化后的数据是无符号的(unsigned),而后者相反。看下面的例子:
CString hex = _T("FAB");
CString decimal = _T("4011");
ASSERT(_tcstoul(hex, 0, 16) == _ttoi(decimal));

为什么不用百度,GOOGLE搜一下,这篇就很详细啊
http://baike.baidu.com/view/998109.htm


2.#include <string> 和#include <cstring>
一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_...

C++ string 转化为LPCTSTR
C++ string 转化为LPCTSTR可以参考下面的代码:string str = "hello";CString cstr(str.c_str());MoveFile(cstr,...); \/\/CString 自动转为LPCTSTR

CString与string的区别
CString,是ATL\/MFC共享的, string是C++标准库的 相同点:(1)用他们都可以取代对char*的使用。(2)都封装了有丰富的字符串操作接口。(3)他们都是C++的类库。(4)他们都使用了模板的技术。 以string的使用为例,不能有如下用法: string * pstr = NULL; \/\/定义一个指向字符串的指针 ...

C++ 中如何求子字符串函数?
include <iostream> include <string> \/\/base_string库 include <cstring> \/\/C语言的string.h库 using namespace std;char * substr(char *dest, char *src, long head, size_t n){ strncpy(dest,&src[head],n);dest[n] = '\\0';return dest;} int main(){ char cstr_org[32]={...

怎样在按下OK按钮后,在编辑框中输出一句话?怎样让编辑框中的内容可以...
编辑框属于静态控件,设置在静态控件上输出一句话,有一个通用的办法 CStatic *pWnd=(CStatic*)GetDlgItem(IDC_EDIT1);\/\/填上你的控件ID pWnd->SetWindowText("一句话");很显然你可以不用“一句话”,而定义 CString cstr=“一句话”;写成pWnd->SetWindowsText(cstr);至于保存在TXT文件中,C++...

MFC 清除字符串中的空格
CString strTemp; char split=' '; nIndex = strTemp.Find( split ); ifsplit函数,最简单但是要使用CString 用字符串处理函数,将空格字符的位置

C++MFC模式下List Control怎么实现双击获取内容
CString m_cstr = m_ListCtrl.GetItemText(istat,1); luomengji | 发布于2010-03-22 举报| 评论 0 0 自己新加个消息相应,OnDBnClkBtn. lsm19870508 | 发布于2010-03-22 举报| 评论 0 0 你看,大致的过程如下:1.拉一个list box出来,然后为其添加消息处理函数Dblclk;2.给这个list box添加一...

如何获取EDIT中的数值?
MFC的可以用tallica1983 的方法,如果不希望定义变量,也可以这样 CSting str;GetDlgItem(ID_Of_EDIT)->GetWindowsText(&str);如果不是MFC的,而是SDK的,则需要这样:HWND hwndOfEdit = GetDlgItem(Hwnd_OF_Dialog, ID_OF_EDit);char cStr[256];GetWindowText(hwndOfEdit, cStr, 256);...

COM参数如何传递数组
VB中的调用代码:dim var1,var2ReDim var1(3)var1(0) = CInt(10) '整型需要*10var1(1) = CLng(10) '长整型需要*100var1(2) = CStr(10) '字串需要加个前缀:string:var2 = com.handle(var1)在Windows中对OLE的处理包含了对数组的处理,但用起来很麻烦。好在VC对其进行了包装,COle...

自己读一个VS2010程序时,将 CString info = "";复制到自己的程序代码中...
未定义 CString,意思就是这个函数不存在。用Cstr、Cint等等

桑日县19753526896: 关于MFC中CString的用法 -
孟锦复方: CString CString没有基类.一个CString对象由可变长度的一队字符组成.CString使用类似于Basic的语法提供函数和操作符.连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组容易使用.CString是基于TCHAR数据类型的...

桑日县19753526896: Cstring的用法 -
孟锦复方: CString是mfc中提供的百 一个标准类,只要包含mfc库的头文件,就可以在 程序中 的任何度位置使用CString类了,CString提供了 强大的字符串版处理能力.其几乎囊括了c语言权中的所有字符串函数的功能.

桑日县19753526896: VC/MFC 编程 类CString函数用法问题 -
孟锦复方: CString strRltL="0";//数字0// 如果strRltL 等于"0"if(0 == strRltL.Compare("0")) {}你用上面的代码试一试!...

桑日县19753526896: 如何在程序中使用CString -
孟锦复方: CString在afx.h中,只要你的项目用了MFC,就可以直接用.

桑日县19753526896: 在控制台应用程序中如何使用CString -
孟锦复方: MFC的CString类型由于功能强大而成为VC开发人员经常使用的一种数据类型.在MFC程序中它可以直接使用,不过在非MFC程序中使用CString就要麻烦一些.方法如下:(以控制台程序为例)1 更改project->setting->C/C++->Code Generation 选择Debug MulitiThreaded2 添加头文件:#include <afx.h> 或者#include<afxwin.h> 接着就可以使用CString了.CString类无需MFC42.dll支持.

桑日县19753526896: MFC中如何利用CString实现string中getline的功能? -
孟锦复方: getline也不属于string的范畴,应该说是一个api,而且是是console框架下的,因为其基本上是用了scanf,cin之类的机制,而mfc框架下这些就无效了 CString就可以理解为string或者char *类似的东西,都只能用来储存数据,输入输出都要靠自己...

桑日县19753526896: MFC 中CString怎么读取指定的字符并修改?如将“100000”中第三个0置1. -
孟锦复方: CString str="100000"; str.SetAt(3,'1');

桑日县19753526896: MFC中如何吧CString类型转换为double或int型?? -
孟锦复方: 修改方式为: 在解决方案窗口右键工程名-->属性->General项(我用的是英文的)-->字符集, 选择多字节那个就行了. 1、转成int:int a = atoi(str.GetBuffer()); 2、转成double:double b = atof(str.GetBuffer()). CString 是一种很有用的数据类型.它...

桑日县19753526896: C#中能使用mfc 的CString类对象吗?怎么用? -
孟锦复方: 一个CString对象由可变长度的一队字符组成.CString使用类似于Basic的语法提供函数和操作符.连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组容易使用. CString是基于TCHAR数据类型的对象.如果在你的程序中定...

桑日县19753526896: C++的string和MFC的CString的区别有哪些? -
孟锦复方: CString 是MFC或者ATL中的实现,string是C++标准库中的实现 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中;CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网