mfc 画一个没有填充的圆
在MFC中我用Ellipse画了一个圆,可是这个圆中间有白色填充色,怎么才能绘制个中间是透明的圆,也就是只要圆的轮廓。画圆的代码时这样的:CDC*dc=GetDC();C...
在MFC中 我用Ellipse画了一个圆,可是这个圆中间有白色填充色,怎么才能绘制个中间是透明的圆,也就是只要圆的轮廓。
画圆的代码时这样的:
CDC *dc=GetDC(); CPen *p=new CPen(); p->CreatePen(PS_SOLID, 1, RGB(255, 0, 255)); dc->SelectObject(p); float SceenX,SceenY,; float R;dc->Ellipse(SceenX-R,SceenY+R,SceenX+R,SceenY-R);
画出来的效果是这样的:
在线等! 展开
画圆的代码时这样的:
CDC *dc=GetDC(); CPen *p=new CPen(); p->CreatePen(PS_SOLID, 1, RGB(255, 0, 255)); dc->SelectObject(p); float SceenX,SceenY,; float R;dc->Ellipse(SceenX-R,SceenY+R,SceenX+R,SceenY-R);
画出来的效果是这样的:
在线等! 展开
2个回答
展开全部
先要获取背景画刷,也就是你的那个地图界面的背景,先画圆,然后在圆的轮廓内进行背景画刷填充。
推荐你看看下面这个文章及Demo,里面可以给你许多提示:
http://www.codeproject.com/Articles/251892/Guide-to-Image-Composition-with-Win32-MsImg32-dll
推荐你看看下面这个文章及Demo,里面可以给你许多提示:
http://www.codeproject.com/Articles/251892/Guide-to-Image-Composition-with-Win32-MsImg32-dll
更多追问追答
追问
感觉好复杂啊,不能有一个方法只画出圆的轮廓么?
追答
voidCMainWindow::DrawO(CDC*pDC,intnPos)
{
CPen pen(PS_SOLID,16,RGB(0,0,255));
CPen* pOldPen=pDC->SelectObject(&pen);
pDC->SelectStockObject(NULL_BRUSH);
CRect rect=m_rcSquares[nPos];
rect.DeflateRect(16,16);
pDC->Ellipse(rect);
pDC->SelectObject(pOldPen);
}
我是用上面这个函数画红色的圆圈,你试试。
展开全部
HDC hDC = NULL;
HPEN hPen = NULL;
HPEN hOldPen = NULL;
HBRUSH hBr = NULL;
HBRUSH hOldBr = NULL;
hDC = GetDC(hWnd);
hPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));
hBr = (HBRUSH)GetStockObject(NULL_BRUSH);
hOldPen = (HPEN)SelectObject(hDC, hPen);
hOldBr = (HBRUSH)SelectObject(hDC, hBr);
// Draw ellipse.
Ellipse(hDC, 10, 90, 90, 170);
SelectObject(hDC, hOldBr);
SelectObject(hDC, hOldPen);
DeleteObject (hBr);
DeleteObject (hPen);
HPEN hPen = NULL;
HPEN hOldPen = NULL;
HBRUSH hBr = NULL;
HBRUSH hOldBr = NULL;
hDC = GetDC(hWnd);
hPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));
hBr = (HBRUSH)GetStockObject(NULL_BRUSH);
hOldPen = (HPEN)SelectObject(hDC, hPen);
hOldBr = (HBRUSH)SelectObject(hDC, hBr);
// Draw ellipse.
Ellipse(hDC, 10, 90, 90, 170);
SelectObject(hDC, hOldBr);
SelectObject(hDC, hOldPen);
DeleteObject (hBr);
DeleteObject (hPen);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询