在void CTestView::OnDraw(CDC* pDC)中画了两个圆,想把两个圆合并成一个Rgn,然后显示一个颜色,可显示出来的,却好像没有合并
CRgn rgnCircle1;
CRgn rgn3;
rgnCircle1.CreateEllipticRgn(10, 20, 110, 120); //圆1
pDC->SelectClipRgn(&rgnCircle1);
pDC->FillRgn(&rgnCircle1, &CBrush(RGB(255,0,0))); //red
rgn3.CreateEllipticRgn(150,180,250,280); //圆2
pDC->SelectClipRgn(&rgn3);
CombineRgn(rgn3,rgn3,rgnCircle1,RGN_OR);
pDC->FillRgn(&rgn3, &CBrush(RGB(0,0,0))); //black
可上面的代码只把圆2显示成了黑色,而圆1还是红色,这是为什么?
怎么让圆1和圆2合并成一个Rgn,然后控制这个Rgn显示为黑色
多谢指教
http://www.yesky.com/SoftChannel/72351167954485248/20001203/141385.shtml
//这样就可以了
CRgn rgnCircle1;
CRgn rgn3;
rgnCircle1.CreateEllipticRgn(10, 20, 110, 120); //圆1
pDC->SelectClipRgn(&rgnCircle1);
pDC->FillRgn(&rgnCircle1, &CBrush(RGB(255,0,0))); //red
rgn3.CreateEllipticRgn(150,180,250,280); //圆2
CombineRgn(rgn3,rgn3,rgnCircle1,RGN_OR);
pDC->SelectClipRgn(&rgn3);
pDC->FillRgn(&rgn3, &CBrush(RGB(0,0,0))); //black}
HRGN rgnCircle1;
HRGN rgn3;
rgnCircle1.CreateEllipticRgn(10, 20, 110, 120); //圆1
pDC->SelectClipRgn(&rgnCircle1);
pDC->FillRgn(&rgnCircle1, &CBrush(RGB(255,0,0))); //red
rgn3.CreateEllipticRgn(150,180,250,280); //圆2
pDC->SelectClipRgn(&rgn3);
CombineRgn(rgn3,rgn3,rgnCircle1,RGN_OR);
pDC->SelectClipRgn(&rgn3);/////////////add
pDC->FillRgn(&rgn3, &CBrush(RGB(0,0,0))); //black