void CMENU2View::OnDraw(CDC* pDC)
{
CMENU2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here pDC->SetTextColor( m_nCurrentColor );
pDC->TextOut (100,100,"I love c++");
CPaintDC dc(this);
CPen  m_Pen;
LOGPEN logpen;
logpen.lopnStyle=PS_SOLID;    //画笔样式
logpen.lopnWidth.x=PenWidth; //画笔宽度
logpen.lopnWidth.y=PenWidth;//画笔宽度
logpen .lopnColor=RGB(0,0,255);
m_Pen. CreatePenIndirect(&logpen );
dc.Ellipse(0,0,10,10);
}

解决方案 »

  1.   

    CPaintDC dc(this);
    不是已经给你dc了吗,参数:CDC *pDC
    就是dc
    用它来画图
    去掉CPaintDC dc(this);
    把后面的dc.
    替换为pDC->
    还有你的画笔怎么没用啊
    浪费资源呀
    加上CPen *oldpen=pDC->SelectObject(&m_pen);
    最后在pDC->SelectObject(oldpen);
      

  2.   

    void CMENU2View::OnDraw(CDC* pdc)
    {
    pdc->Ellipse(0,0,10,10);
    }
      

  3.   

    楼上的 xiaoshao_0_0说的对,不光是椭圆,用你的程序别的可能也画不了。
      

  4.   

    画图之前请先选择画笔,请使用函数提供给你的CDC。
    OnDraw(CDC* pDC)//这个pDC已经可以用来画图了。
    pDC->SelectObject(&m_pen);//为CDC绘图环境选择绘图工具
    //接下来画你想要的东西
      

  5.   

    CPaint dc(this)不可以
    但是可以这样用:
            CPaintDC *dc=(CPaintDC *)this->GetDC();
    CPen  m_Pen;
    LOGPEN logpen;
    logpen.lopnStyle=PS_SOLID;    
    logpen.lopnWidth.x=5;
    logpen .lopnColor=RGB(0,0,255);
    m_Pen. CreatePenIndirect(&logpen );
    CPen *oldpen=dc->SelectObject(&m_Pen);
    dc->Ellipse(0,0,80,80);
             dc->SelectObject(oldpen);
      

  6.   


    CRect rectClient;
    GetClientRect(rectClient);
    pDC->SetMapMode(MM_ANISOTROPIC);
    pDC->SetWindowExt(1000,1000);
    pDC->SetViewportExt(rectClient.right,-rectClient.bottom);
    pDC->SetViewportOrg(rectClient.right/2,rectClient.bottom/2);
    pDC->Ellipse(CRect(-500,-500,500,500));