VC9中 OnChar 输入中文乱码问题
void CXXXView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
if(0x0d==nChar) //回车
{
...
}
else if(0x08==nChar) //退格
{
...
}
else
{
m_strLine += (CHAR)nChar; //累加输入的字符
}
CSize sz=dc.GetTextExtent(m_strLine);
CPoint pt;
pt.x=m_ptOrigin.x+sz.cx;
pt.y=m_ptOrigin.y;
SetCaretPos(pt); //光标重新定位
dc.TextOutW(m_ptOrigin.x, m_ptOrigin.y, m_strLine); //输出
CView::OnChar(nChar, nRepCnt, nFlags);
}
这段在VC6中是正常的,可以写到VC9中输入中文就全是乱码了