求助,C++在MFC中画圆,要求填充的是透明的背景 20

CGraphicDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(!pDoc)return;cont=0;CRectrect;Ge... CGraphicDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

if (!pDoc)
return;
cont=0;
CRect rect;
GetWindowRect(&rect);
int w=rect.Width()/2;
int h=rect.Height()/2;

CPen *pPen=new CPen;
CPen *pOldPn;
pPen->CreatePen(PS_SOLID,5,RGB(0,0,0));
pOldPn=pDC->SelectObject(pPen);
pDC->Ellipse(w,w,h,h);
if(pOldPn)pDC->SelectObject(pOldPn);
pPen->DeleteObject();
这是我的代码,求各位大神帮忙,就是把画出的圆填充为背景,因为我实在位图上画圆,谢谢
展开
 我来答
文正153
2015-08-12 · TA获得超过2.1万个赞
知道大有可为答主
回答量:2221
采纳率:63%
帮助的人:611万
展开全部
CClient DC(this);
CBrush *pOldBrush = DC.SelectObject(CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSHL)));

DC.ClientDC.Ellipse(10,10,100,100);
DC.SelectObject(pOldBrush);

其中GetStockObject它是返回一个空的画刷, 但是这个画刷的类型是HGDIOBJECT, 它和HBRUSH不一样, 但是HBRUSH和HGDIOBJECT的关系就像基类和派生类, 但是还不是, 所以不强制类型转换的话就会报错. 因此需要加一个强制类型转换.
转换后的画刷句柄传给CBrush类的一个静态成员函数FromHandle, 它会把句柄变为一个CBrush类的对象, 并返回其指针.
这样就得到了一个空画刷的对象, 然后用CClientDC的成员函数SelectObject把空画刷对象选到设备描述表中, 然后就可以画圆了.
最后还要记得把原始画刷替换回去, 不然会引发一些图像的错误.
爱上夜色深沉
2013-05-30 · TA获得超过459个赞
知道小有建树答主
回答量:377
采纳率:100%
帮助的人:342万
展开全部
CRect rect;
GetWindowRect(&rect);
int w=rect.Width()/2;
int h=rect.Height()/2;

CPen *pPen=new CPen;
CPen *pOldPn;
pPen->CreatePen(PS_SOLID,5,RGB(0,0,0));
pOldPn=pDC->SelectObject(pPen);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));//获取透明画刷
CBrush *pOldBrush=dc.SelectObject(pBrush);//选入设备
pDC->Ellipse(w,w,h,h);//你这里确定能画出来?我记得貌似是外接矩形的左上角和右下角的坐标
if(pOldPn)pDC->SelectObject(pOldPn);
pPen->DeleteObject();

pDC->SelectObject(pOldBrush);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龚炜林
2013-05-29 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:561万
展开全部
CRgn rgn;
rgn.CreateEllipticRgn (xLeft, yTop, xRight, yBottom) ;//参数自己看着改
CBrush brush;
brush.CreateSolidBrush (RGB(0, 0, 0)) ;
pDC->FillRgn (rgn, &brush) ;
更多追问追答
追问
不行啊,这只是画刷而已,不能改为透明啊
追答
搞不懂你要干嘛,要填充,又要透明......到底要透明什么?要填充什么?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式