void CTestView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this);
CFont font;
font.CreatePointFont(300, _T("华文楷体"), NULL);
CFont *pOldFont = dc.SelectObject(&font);
TEXTMETRIC tx;
dc.GetTextMetrics(&tx);
if (13 == nChar)
{
str.Empty();
m_inputpt.y += tx.tmHeight;
}
else if (0X08 == nChar)
{
COLORREF col = dc.SetTextColor(dc.GetBkColor());
dc.TextOutW(m_inputpt.x, m_inputpt.y, str);
str = str.Left(str.GetLength() - 1);
dc.SetTextColor(col);
}
else
{
str += (char)nChar;
}
CSize sz = dc.GetTextExtent(str);
CPoint pt;
pt.x = m_inputpt.x + sz.cx;
pt.y = m_inputpt.y;
SetCaretPos(pt);
dc.TextOutW(m_inputpt.x, m_inputpt.y, str);
dc.SelectObject(pOldFont);
CView::OnChar(nChar, nRepCnt, nFlags);
}
用的是VS2013,字符集是Unicode
竖线残留在我不设置字体样式就没问题但还是中文乱码
我用VC++6.0编写了一个一模一样的程序,但是在VC++6.0没有乱码。怎么设置VS2013才可以不乱码
这是运行的截图。。。。。。。。。。。。