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);
画出来的效果是这样的:

在线等!
展开
 我来答
任明星Ming
2013-07-17 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1148万
展开全部
先要获取背景画刷,也就是你的那个地图界面的背景,先画圆,然后在圆的轮廓内进行背景画刷填充。
推荐你看看下面这个文章及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);
}
我是用上面这个函数画红色的圆圈,你试试。
xz宏定义
2013-07-17 · TA获得超过1029个赞
知道小有建树答主
回答量:1621
采纳率:100%
帮助的人:228万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式