知到椭圆的外接矩形用ellipse在指定的一个矩形绘图区域画圆,如何隐藏出去的部分, 椭圆可以放大 也就是说椭圆可能左右上下同时出去,此时就可能留在绘图区域四段弧, 也又可能出去一边 留下一段弧, 还有出去两边,三边的情况  (出了绘图区域的就隐藏, 在绘图区域的就画出来)
请问下各位能又什么高效简洁的方法实现(MFC) 讲算法 讲程序都可以了 请各位帮忙一起想象拜托了!

解决方案 »

  1.   

    你可以用SelectClipRgn只画剪裁的区域。
      

  2.   

    谢谢了Mackz  我明白了
    CRect EllipseRect(m_points[0], m_points[1]);  
            CRgn rgn; 
    pDC->SelectStockObject(NULL_BRUSH);    
      rgn.CreateRectRgnIndirect(&rect) ;  
    pDC->SelectClipRgn(&rgn, RGN_AND);
    pDC->Ellipse(&EllipseRect);   
     
      

  3.   

    谢谢了Mackz  我明白了
    CRect EllipseRect(m_points[0], m_points[1]);  
            CRgn rgn; 
    pDC->SelectStockObject(NULL_BRUSH);    
      rgn.CreateRectRgnIndirect(&rect) ;  
    pDC->SelectClipRgn(&rgn, RGN_AND);
    pDC->Ellipse(&EllipseRect);