dc.DrawText (_T ("Hello, MFC")这句代码中的_T是什么意思?
#define _T(x) __T(x)
#define __T(x) L ## x
这是定义,可是我看不出来他在这里是什么作用啊?
MSDN给出这个函数的原型:
virtual int DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );int DrawText( const CString& str, LPRECT lpRect, UINT nFormat );我又尝试了一下:
char buf[] = "Hello, MFC";
dc.DrawText ((LPCTSTR)buf, -1, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER);
还是不对,那是说空终止的字符串么,符合第一个啊?PS:我知道用CString类型总是可以的。
#define _T(x) __T(x)
#define __T(x) L ## x
这是定义,可是我看不出来他在这里是什么作用啊?
MSDN给出这个函数的原型:
virtual int DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );int DrawText( const CString& str, LPRECT lpRect, UINT nFormat );我又尝试了一下:
char buf[] = "Hello, MFC";
dc.DrawText ((LPCTSTR)buf, -1, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER);
还是不对,那是说空终止的字符串么,符合第一个啊?PS:我知道用CString类型总是可以的。
#define __T(x) L ## x这个是自动匹配码制的通用宏
多字节和Unicode对于字符串处理要求不同,有这个可以不用管码制(Character)了。