MFC CString 用法小结2

 (10)  在ListBox中查找字符串
int index=::SendMessage(m_stringlist.GetSafeHwnd(),LB_FINDSTRINGEXACT,-1,
(LPARAM)(LPCTSTR)strtext));//通过SendMessage函数向列表控件发送LB_FINDSTRINGEXACT消息来查找指定字符串是否在列表空间中,如果存在则返回索引位置。
 
 (11)   字符串数组:
                   CString str[5] array;
                   CString str[5]={“feiqiang”,”mingri”,”mr”};
                   for(int i=0;i<5;i++)
    {
                            array.Add(str[i]);//添加元素
    }
 for(int j=0;j<array.Size(),j++)
  {//字符数组大小
              if(array.Get(j)==”mr”)
   {
           MessageBox(“存在”);
  }

(12)  设置编码方式:Project/SettingsàPreprocessor,如果要使用DBCS,则添加_MBCS(多个字节编码),如果要使用Unicode,则添加_Unicode,不添加则使用ASCII.

二     字符串指针类型

(1)    LPCSTR:32位静态字符串指针,可以直接赋值使用,如LPCSTR str=”mingrisofg”;

(2)    LPSTR:32位字符串指针,如LPSTR str; str=new char[256];

(3)    LPCTSTR:32位UNICODE型静态字符串指针,如 LPCTSTR str=_T(“mingrisoft”);

(4)    LPTSTR: 32位UNICODE型字符串指针,如LPTSTR str=new TCHAR[256];

三     BSTR(进行COM编程时使用的字符串类型)与CString之间的转化:
1.      对BSTR变量赋值时:
BSTR bstr=NULL;
bstr=SysAllocString(L”feiqang”);//从LPCWSTR构造
         SysFreeString(bstr);//释放
将BSTR强制转化为CString,如:
CString str=(CString) bstr;或CString str; BSTR bstr=str.AllocSysString();
2.      _bstr_(对BSTR的包装类),包含的头文件为:”COMDEF.H”
         用法:
         直接赋值:_bstr_t tbstr=”feqiang”;
         给CString对象赋值:CString str=(LPCSTR)tbstr;//LPCSTR str=tbstr;
         将_bsr_转化为BSTR,使用copy函数:BSTR bstr=tbstr.copy(); SysFreeString(bstr);
         BSTR之间赋值给_bstr_对象,如BSTR bstr=SysAllocString(L”mingri”); _bstr_t tbstr=bstr;

四 格式化类型
如:获取并且格式化系统时间
         CTime t=CTime::GetCurrentTime();
         CSTring strtime=t.Format(“%H:%M:%S”);
         MessageBox(strtime;
1.CString::IsEmpty
BOOL IsEmpty( ) const;
返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。
说明:此成员函数用来测试一个CString 对象是否是空的。
示例:
下面的例子说明了如何使用CString::IsEmpty。
// CString::IsEmpty 示例
CString s;
ASSERT( s.IsEmpty() );
请参阅 CString::GetLength

2.CString::Left
CString Left( int nCount ) const; 
throw( CMemoryException );
返回值:返回的字符串是前nCount个字符。
示例:
CString s( _T("abcdef") );
ASSERT( s.Left(2) == _T("ab") );

3.CString::LoadString
BOOL LoadString( UINT nID );
throw( CMemoryException );
返回值:如果加载资源成功则返回非零值;否则返回0。
nID  一个Windows 字符串资源ID。
说明: 此成员函数用来读取一个由nID 标识的Windows 字符串资源,并放入一个已有CString 对象中。
示例:
下面的例子说明了如何使用CString::LoadString。
// CString::LoadString 示例
#define IDS_FILENOTFOUND 1
CString s;
if (! s.LoadString( IDS_FILENOTFOUND ))

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代表要提取的开始索引位置
示例:
CString s( _T("abcdef") );
ASSERT( s.Mid( 2, 3 ) == _T("cde") );

8.CString::ReleaseBuffer
void ReleaseBuffer( int nNewLength = -1 );
参数:nNewLength
此字符串的以字符数表示的新长度,不计算结尾的空字符。如果这个字
符串是以空字符结尾的,则参数的缺省值-1 将把CString 的大小设置为
字符串的当前长度。
说明:
使用ReleaseBuffer 来结束对由GetBuffer 分配的缓冲区的使用。如果你知道缓
冲区中的字符串是以空字符结尾的,则可以省略nNewLength 参数。如果字符
串不是以空字符结尾的,则可以使用nNewLength 指定字符串的长度。在调用
ReleaseBuffer 或其它CString 操作之后,由GetBuffer 返回的地址是无效的。
示例:
下面的例子说明了如何使用CString::ReleaseBuffer。
// CString::ReleaseBuffer 示例
CString s;
s = "abc";
LPTSTR p = s.GetBuffer( 1024 );
strcpy(p, "abc"); //

 

你可能感兴趣的:(编程,windows,测试,null,mfc)