//头文件里定义
CDC *m_pDC;   
CFont m_font;
char m_FontName[50];//字体
int m_nFontSize; //字体大小
void CCreateTable::CCreateTable()
{
    m_pDC = NULL;
}
void CCreateTable::~CCreateTable()
{
    if(m_pDC != NULL)
    {
       delete m_pDC ;
       m_pDC = NULL;
    }
}void CCreateTable::OnCreate()
{
    m_pDC = new CDC();
}void CCreateTable::LoadTableDef()
{
  m_font.DeleteObject();
  m_font.CreatePointFont(m_nFontSize*10,m_FontName);
  m_pDC->SelectObject(&m_font);   //此处出现错误,m_pDC应该怎么处理  TEXTMETRIC metric;
  m_pDC->GetTextMetric(&metric);
  int m_fontHeight = metric.tmHeight;
  int m_fontWidth = metric.tmAveCharWidth;
}

解决方案 »

  1.   

    补充:m_nFontSize通过读取文件获得字体大小值
      

  2.   

    msdn sample:CClientDC dc(this);CFont font;
    VERIFY(font.CreatePointFont(120, _T("Arial"), &dc));// Do something with the font just created...
    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();
      

  3.   

     m_pDC = new CDC(); -->>  m_pDC = GetCDC();