如题 这是在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,&currentP);       //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);
}

解决方案 »

  1.   

    VERIFY(myFont.CreatePointFont(200,"华文行楷",&dc));
    改为
    VERIFY(myFont.CreatePointFont(200,_T("华文行楷"),&dc));
      

  2.   

    VERIFY(myFont.CreatePointFont(200,"华文行楷",&dc));
    改为
    VERIFY(myFont.CreatePointFont(200,_T("华文行楷"));
      就可以的了...有可能是因为VC6.0在vs2010上运行有些不一样导致
      

  3.   

    赞同1,2 楼
    下面是 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();