MFC lesson 3 multibyte processing
DrawTextW (Unicode) and DrawTextA (ANSI)
Different parameters
To put it simply,
Unicode uses two bytes to represent all characters, including letters
Ansi uses 1 byte to represent letters and two bytes to represent characters such as Chinese characters.
ANSI uses DrawTextA when string variables
The string variable is Unicode using DrawTextW
Conversion of CString wide bytes to multi-byte strings
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
}
Note: the second call to WideCharToMultiByte is mainly to get the generated length.