C++中SetWindowTextW, SetWindowTextA SetWindowText三者有什么区别?
2个回答
展开全部
#ifdef UNICODE
#define SetWindowText SetWindowTextW
#else
#define SetWindowText SetWindowTextA
#endif // !UNICODE
首先解释A和W的不同意义:
其实MFC中
凡是涉及字符串处理的API函数都有A和W两个版本
A结尾的表示使用ANSI编码:中文的Windows操作系统一般对应的就是GBK,GBK在内存里英文占用一个字节 、汉字两个字节。
W结尾的表示:
UTF-16版本---英文两个字节、汉字两个字节
UTF-32版本---英文四个字节、汉字四个字节
如果楼主确定你的软件将来只需要英文或汉文字符,那就选择A版本的API,如果有可能要使用多国文字,那么最好使用W版本的API。
然后,楼主再看上面一段,MFC中的源代码,其实实际上只存在SetWindowTextW和SetWindowTextA,如果你的整个项目字符集是UNICODE格式的字符集,那SetWindowText和SetWindowTextW其实就是一个东西,如果不是UNICODE那SetWindowText就和SetWindowTextA是一个东西。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询