又拉我来做界面,无趣。

SetDlgItemText( );    UpdateData(FALSE);  它们都能更新编辑框的内容。

 区别是UpdateData(FALSE)更新的是窗口中所有编辑框中的内容,而SetDlgItemText只更新特定的编辑中的内容。      

Unicode库,字符串需要用_T(),CString动态分配内存空间,LPCTSTR是在Unicode环境下const char*的宏定义。

CString s;
int i = 64;
 s.Format("%d", i);

Windows使用两种字符集ANSI和Unicode,前者在处理英文字符时使用单字节方式,在处理中文字符时使用双字节方式。后者不管是英文字符还是中文字符都是采用双字节方式表示。ANSI(即MBCS):为多字节字符集。字符集的选择在项目-----属性----配置属性-----常规里。

_T是一个适配宏。当定义了_UNICODE时,_T和_L相同;否则,_T的字符串采用ANSI编码方式。_L不管你是以什么方式编译,一律以Unicode方法保存。

LPSTR:指向一个字符串的32位指针,每个字符占1个字节。

LPCSTR:指向一个常量字符串的32位指针,每个字符占1个字节。

LPTSTR:指向一个字符串的32位指针,每个字符可能占1个字节或2个字节。

LPCTSTR:指向一个常量字符串的32位指针,每个字符可能占1个字节或2个字节。

ansi情况下,LPCTSTR 就是 const char*,而LPTSTR 就是 char*。CString 和 LPCTSTR 基本可以通用。CString 转换到 LPTSTR (char*), 预定的做法是调用CString的GetBuffer函数,使用完毕之后一般都要再调用ReleaseBuffer函数来确认修改。CString是CStringT的一种,CStringT是从CSimpleStringT继承来的。GetBuffer是CSimpleStringT的函数。

If nMinBufferLength is greater than the length of the current buffer, the call toGetBuffer destroys the current buffer, replacing it with a buffer of the requested size and resetting the reference count to zero.

If count is less than or equal to the length ofstrSource, a null character is not appended automatically to the copied string. Ifcount is greater than the length of strSource, the destination string is padded with null characters up to lengthcount。

CString strTest("test");
_tcsncpy(strTest.GetBuffer(10), _T("Taw234"), 7);
int sizeOfBuffer = strTest.GetAllocLength();
strTest.ReleaseBuffer();

当从一个CString产生另一个CString并不复制它的字符缓冲区内容,而只是将字符缓冲区的"引用计数"加1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值