请教怎么改变改变Ellipse填充的颜色和画笔的颜色?

unhappyless_23 2008-01-14 11:44:29
请教怎么改变改变Ellipse填充的颜色和画笔的颜色?

我用 pDC->SelectObject(CBrush(RGB(0,0,255));
pDC->Ellipse(100, 100, 100+20, 100+ 20);

为什么不行?
...全文
1230 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
金笛子 2008-09-19
  • 打赏
  • 举报
回复
受用!
Just4life 2008-01-20
  • 打赏
  • 举报
回复
在画之前,自己先创建一个CPen,CBrush,然后使用CDC类的selectobject()函数选中这两个然后再画就可以了
unhappyless_23 2008-01-19
  • 打赏
  • 举报
回复
那我用 pDC-> SelectObject(CBrush(RGB(0,0,255)); 为什么不行?
lzr4304061988012 2008-01-19
  • 打赏
  • 举报
回复
肯定不行, 参数必须是指针.
lzr4304061988012 2008-01-18
  • 打赏
  • 举报
回复
不用new也完全行, CBrush NewBrush(RGB(0,0,255));
CBrush *OldBrush=pDC-> SelectObject(&NewBrush);
unhappyless_23 2008-01-18
  • 打赏
  • 举报
回复
哈可以了,用 new 就可以了

但为什么不用 new 就不行呢,每次重绘时都要生成零时变量,用完就回收,为什么这样不行?
lzr4304061988012 2008-01-15
  • 打赏
  • 举报
回复
你分开写试试!即
CBrush *NewBrush=new CBrush(RGB(0,0,255));
CBrush *OldBrush=pDC->SelectObject(NewBrush);
unhappyless_23 2008-01-15
  • 打赏
  • 举报
回复
但是我用 new 也不行,下面代码没释放new的东西,暂时先不管
pDC-> SelectObject( new CBrush(RGB(0,0,255));
pDC-> Ellipse(100, 100, 100+20, 100+ 20);
junheng 2008-01-15
  • 打赏
  • 举报
回复
首先,SelectObject函数选取的是一个指针CGdiObject对象;
其次,填充要用画刷,而边缘线要用画笔。
最后,应该恢复设备环境的画刷和画笔;及时释放内存,应该调用DeleteObject删除自定义的CGdiObject对象
参考代码如下:
CBrush *pBrush=new CBrush;
CPen *pPen=new CPen;
CBrush *pOldBrh;
CPen *pOldPn;
pPen->CreatePen(PS_SOLID,2,RGB(255,0,0));
pBrush->CreateSolidBrush(RGB(0,0,255));
pOldPn=pDC->SelectObject(pPen);
pOldBrh=pDC->SelectObject(pBrush);
pDC->Ellipse(100, 100, 100+20, 100+ 20);
if(pOldPn)pDC->SelectObject(pOldPn);
if(pOldBrh)pDC->SelectObject(pOldBrh);
pPen->DeleteObject();
pBrush->DeleteObject();
未经调试,仅供参考。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧