如题 这是在vs2005下编写MFC程序的 在vc++6.0里可以使用 可是在vs2005中会出现错误 求解求解 void CtestView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this); CFont myFont;
VERIFY(myFont.CreatePointFont(200,"华文行楷",&dc));
CFont *oldFont=dc.SelectObject(&myFont);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm); //
m_csRecv +=(char)nChar;
CPoint currentP;
GetCurrentPositionEx(dc,¤tP); //get the current device position; CSize csSize;
csSize=dc.GetTextExtent(m_csRecv); //evety character's width and heigh CPoint newpoint;
newpoint.x=currentP.x+csSize.cx;
newpoint.y=currentP.y;
SetCaretPos(newpoint);
dc.TextOut(currentP.x,currentP.y,m_csRecv); dc.SelectObject(oldFont);
CView::OnChar(nChar, nRepCnt, nFlags);
}
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC dc(this); CFont myFont;
VERIFY(myFont.CreatePointFont(200,"华文行楷",&dc));
CFont *oldFont=dc.SelectObject(&myFont);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm); //
m_csRecv +=(char)nChar;
CPoint currentP;
GetCurrentPositionEx(dc,¤tP); //get the current device position; CSize csSize;
csSize=dc.GetTextExtent(m_csRecv); //evety character's width and heigh CPoint newpoint;
newpoint.x=currentP.x+csSize.cx;
newpoint.y=currentP.y;
SetCaretPos(newpoint);
dc.TextOut(currentP.x,currentP.y,m_csRecv); dc.SelectObject(oldFont);
CView::OnChar(nChar, nRepCnt, nFlags);
}
改为
VERIFY(myFont.CreatePointFont(200,_T("华文行楷"),&dc));
改为
VERIFY(myFont.CreatePointFont(200,_T("华文行楷"));
就可以的了...有可能是因为VC6.0在vs2010上运行有些不一样导致
下面是 msdn中的例子
CClientDC dc(this);CFont font;
VERIFY(font.CreatePointFont(120, _T("Arial"), &dc));
CFont* def_font = dc.SelectObject(&font);
dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);// Done with the font. Delete the font object.
font.DeleteObject();