我用以下代码欲绘制实心圆,怎么出不来图形
         CBrush Brush;
Brush.CreateSolidBrush(RGB(0,0,255));
pDC->BeginPath();
pDC->Ellipse(10,10,100,100);
pDC->EndPath();
pDC->SelectObject(&Brush);
pDC->FillPath();
到底该怎么办?
而像这样绘制一个矩形却能画出实心的矩形
         CBrush Brush;
Brush.CreateSolidBrush(RGB(0,0,255));
pDC->BeginPath();
pDC->MoveTo(10,10);
pDC->LineTo(100,10);
pDC->LineTo(100,100);
pDC->LineTo(10,100);
pDC->LineTo(10,10);
pDC->EndPath();
pDC->SelectObject(&Brush);
pDC->FillPath();
同样是封闭曲线,前者为什么不能?

解决方案 »

  1.   

    isdong(有些事情应该忘记) :您说能画出来,是不是另有其他办法
      

  2.   

    CRgn   rgnA, rgnB, rgnC;VERIFY(rgnA.CreateRoundRectRgn( 50, 50, 150, 150, 30, 30 ));
    VERIFY(rgnB.CreateRoundRectRgn( 200, 75, 250, 125, 50, 50 ));
    VERIFY(rgnC.CreateRectRgn( 0, 0, 50, 50 ));int nCombineResult = rgnC.CombineRgn( &rgnA, &rgnB, RGN_OR );
    ASSERT( nCombineResult != ERROR || nCombineResult != NULLREGION );CBrush brA, brB, brC;
    VERIFY(brA.CreateSolidBrush( RGB(255, 0, 0) ));  
    VERIFY(pDC->FillRgn( &rgnA, &brA));      // rgnA Red FilledVERIFY(brB.CreateSolidBrush( RGB(0, 255, 0) ));  
    VERIFY(pDC->FillRgn( &rgnB, &brB));      // rgnB Green Filled
    VERIFY(brC.CreateSolidBrush( RGB(0, 0, 255) ));  // rgnC Blue
    VERIFY(pDC->FrameRgn( &rgnC, &brC, 2, 2 ));
      

  3.   

    就是你的代码,注释部分 else
    {
    CPaintDC dc(this); // device context for painting// CDC * pDC = &dc;
    // CBrush Brush;
    // Brush.CreateSolidBrush(RGB(0,0,255));
    // pDC->BeginPath();
    // pDC->Ellipse(10,10,100,100);
    // pDC->EndPath();
    // pDC->SelectObject(&Brush);
    // pDC->FillPath();

    CBitmapDialog::OnPaint();
    }