vc关于SetItemText

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:47:09
m_List.SetItemText(i,4,LPCTSTR(itoa(pset->m_number,buffer,10)));

这句代码中,LPCTSTR()是用来干什么的
另外这个itoa是整形变字符
那么如果我这个变量m_number是double型,我该怎么转变 啊??

谢谢

#ifdef UNICODE
typedef WCHAR TCHAR // 宽字符
#else
typedef char TCHAR
#endif

typedef const TCHAR *LPCTSTR
这是类型定义

LPCTSTR()就是类型强制转换.

那么如果我这个变量m_number是double型,我该怎么转变 啊??
就用CString 的Format();方法不就行了

L表示long指针, 这是为了兼容Windows 3.1等16位操作系统遗留下来的, 在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。

P表示这是一个指针,C表示是一个常量T在Win32环境中, 有一个_T宏,这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。STR表示这个变量是一个字符串。

所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。同样, LPCSTR就只能是一个ANSI字符串,在程序中我们大部分时间要使用带T的类型定义。LPCTSTR == const TCHAR *

CString str;
str.Format("%f",pset->m_number);
m_List.SetItemText(i,4,LPCTSTR(itoa(str,buffer,10)));

我不知道有没有doubleTo之类的函数,不过,我一般会这样用
CString szText;
szText.Format("%f",pset->m_number);
m_List.SetItemText(i,4,szText,buffer,10)));

另外sprintf也可以

给个很好的参考