欢迎光临
我们一直在努力

MFC第三课 多字节处理

DrawTextW (Unicode) and DrawTextA (ANSI)

参数不同

 

简单来说

unicode  是用两个字节表示所有的字符,包括字母,

ansi  是用1个字节表示字母,两个字节表示汉字等文字

 

字符串变量时ANSI使用DrawTextA

字符串变量是Unicode使用DrawTextW

CString宽字节转换成多字节字符串

 void CStringToChar(CString strSrc,char* pDest,int size)
{
  memset(pDest,0,size);
  int nLength = strSrc.GetLength();
  int nBytes = WideCharToMultiByte(CP_ACP,0,strSrc,nLength,NULL,0,NULL,NULL);
  WideCharToMultiByte(CP_OEMCP, 0, strSrc, nLength, pDest, nBytes, NULL, NULL); 
  pDest[nBytes] = 0;
};

注意:第二次调用WideCharToMultiByte主要是为了能够获取生成的长度

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。