void CFontViewView::OnDraw(CDC* pDC)
{
CFontViewDoc* pDoc = GetDocument();
  ASSERT_VALID(pDoc);
  // TODO: add draw code for native data here
 
RECT ClientRect;
CFont Font;
LOGFONT LF;
  int LineHeight;
CFont * PtrOldFont;
  int X,Y;
 
if(pDoc->m_Bold)
LF.lfWeight=FW_BOLD;
if(pDoc->m_Italic)
LF.lfItalic=1;
  if(pDoc->m_Underline)
  LF.lfUnderline=1;
 
  //选择字体
Font.CreateFontIndirect(&LF);
PtrOldFont=pDC->SelectObject(&Font); //设置段落安排
  GetClientRect(&ClientRect);
switch(pDoc->m_Justify)
{
  case JUSTIFY_LEFT:
  pDC->SetTextAlign(TA_LEFT);
  X=ClientRect.left+5;
break;
  case JUSTIFY_CENTER:
pDC->SetTextAlign(TA_CENTER);
  X=(ClientRect.left+ClientRect.right)/2;
  break;
case JUSTIFY_RIGHT:
pDC->SetTextAlign(TA_RIGHT);
  X=ClientRect.right+5;
break;
}
 
  //设置背景色
  pDC->SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
  pDC->SetBkMode(TRANSPARENT);
 
  //画对话框
  LineHeight=LF.lfHeight*pDoc->m_Spacing;
  Y=5;
  pDC->TextOut(X,Y,"OK! This is a sample.");
  Y+=LineHeight;
  pDC->TextOut(X,Y,"OK! This is a sample.");
  Y+=LineHeight;
  pDC->TextOut(X,Y,"OK! This is a sample.");
 
pDC->SelectObject(PtrOldFont);

}

解决方案 »

  1.   

    void CFontViewView::OnDraw(CDC* pDC)
    {
    CFontViewDoc* pDoc = GetDocument();
      ASSERT_VALID(pDoc);
      // TODO: add draw code for native data here
     
    RECT ClientRect;
    CFont Font;
    LOGFONT LF;
      int LineHeight;
    CFont * PtrOldFont;
      int X,Y;
     
    if(pDoc->m_Bold)
    LF.lfWeight=FW_BOLD;
    if(pDoc->m_Italic)
    LF.lfItalic=1;
      if(pDoc->m_Underline)
      LF.lfUnderline=1;
     
      //选择字体
    Font.CreateFontIndirect(&LF);
    PtrOldFont=pDC->SelectObject(&Font); //设置段落安排
      GetClientRect(&ClientRect);
    switch(pDoc->m_Justify)
    {
      case JUSTIFY_LEFT:
      pDC->SetTextAlign(TA_LEFT);
      X=ClientRect.left+5;
    break;
      case JUSTIFY_CENTER:
    pDC->SetTextAlign(TA_CENTER);
      X=(ClientRect.left+ClientRect.right)/2;
      break;
    case JUSTIFY_RIGHT:
    pDC->SetTextAlign(TA_RIGHT);
      X=ClientRect.right+5;
    break;
    }
     
      //设置背景色
      pDC->SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
      pDC->SetBkMode(TRANSPARENT);
     
      //画对话框
      LineHeight=LF.lfHeight*pDoc->m_Spacing;
      Y=5;
      pDC->TextOut(X,Y,"OK! This is a sample.");
      Y+=LineHeight;
      pDC->TextOut(X,Y,"OK! This is a sample.");
      Y+=LineHeight;
      pDC->TextOut(X,Y,"OK! This is a sample.");
     
    pDC->SelectObject(PtrOldFont);

    }
      

  2.   

    void CFontViewView::OnDraw(CDC* pDC)
    {
    CFontViewDoc* pDoc = GetDocument();
      ASSERT_VALID(pDoc);
      // TODO: add draw code for native data here
     
    RECT ClientRect;
    CFont Font;
    LOGFONT LF;
      int LineHeight;
    CFont * PtrOldFont;
      int X,Y;
     
    if(pDoc->m_Bold)
    LF.lfWeight=FW_BOLD;
    if(pDoc->m_Italic)
    LF.lfItalic=1;
      if(pDoc->m_Underline)
      LF.lfUnderline=1;
     
      //选择字体
    Font.CreateFontIndirect(&LF);
    PtrOldFont=pDC->SelectObject(&Font); //设置段落安排
      GetClientRect(&ClientRect);
    switch(pDoc->m_Justify)
    {
      case JUSTIFY_LEFT:
      pDC->SetTextAlign(TA_LEFT);
      X=ClientRect.left+5;
    break;
      case JUSTIFY_CENTER:
    pDC->SetTextAlign(TA_CENTER);
      X=(ClientRect.left+ClientRect.right)/2;
      break;
    case JUSTIFY_RIGHT:
    pDC->SetTextAlign(TA_RIGHT);
      X=ClientRect.right+5;
    break;
    }
     
      //设置背景色
      pDC->SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
      pDC->SetBkMode(TRANSPARENT);
     
      //画对话框
      LineHeight=LF.lfHeight*pDoc->m_Spacing;
      Y=5;
      pDC->TextOut(X,Y,"OK! This is a sample.");
      Y+=LineHeight;
      pDC->TextOut(X,Y,"OK! This is a sample.");
      Y+=LineHeight;
      pDC->TextOut(X,Y,"OK! This is a sample.");
     
    pDC->SelectObject(PtrOldFont);
     
    }
      

  3.   

    void CFontViewView::OnDraw(CDC* pDC)
    {
    CFontViewDoc* pDoc = GetDocument();
      ASSERT_VALID(pDoc);
      // TODO: add draw code for native data here
     
    RECT ClientRect;
    CFont Font;
    LOGFONT LF;
      int LineHeight;
    CFont * PtrOldFont;
      int X,Y;
     
    if(pDoc->m_Bold)
    LF.lfWeight=FW_BOLD;
    if(pDoc->m_Italic)
    LF.lfItalic=1;
      if(pDoc->m_Underline)
      LF.lfUnderline=1;
     
      //选择字体
    Font.CreateFontIndirect(&LF);
    PtrOldFont=pDC->SelectObject(&Font); //设置段落安排
      GetClientRect(&ClientRect);
    switch(pDoc->m_Justify)
    {
      case JUSTIFY_LEFT:
      pDC->SetTextAlign(TA_LEFT);
      X=ClientRect.left+5;
    break;
      case JUSTIFY_CENTER:
    pDC->SetTextAlign(TA_CENTER);
      X=(ClientRect.left+ClientRect.right)/2;
      break;
    case JUSTIFY_RIGHT:
    pDC->SetTextAlign(TA_RIGHT);
      X=ClientRect.right+5;
    break;
    }
     
      //设置背景色
      pDC->SetTextColor(::GetSysColor(COLOR_WINDOWTEXT));
      pDC->SetBkMode(TRANSPARENT);
     
      //画对话框
      LineHeight=LF.lfHeight*pDoc->m_Spacing;
      Y=5;
      pDC->TextOut(X,Y,"OK! This is a sample.");
      Y+=LineHeight;
      pDC->TextOut(X,Y,"OK! This is a sample.");
      Y+=LineHeight;
      pDC->TextOut(X,Y,"OK! This is a sample.");
     
    pDC->SelectObject(PtrOldFont);
     
    }
      

  4.   

    得到CDC dc=GetDC();
        theView.OnDraw(dc);//得到CView传递参数,直接调用
      

  5.   

    当然要有窗口的指针才行啊,这样
    theView.Invalidate()