VC++的简单的问题,不是本难

voidCChildView::OnPaint(){CPointpoint[3];CPaintDCdc(this);//devicecontextforpaintingC... void CChildView::OnPaint()
{
CPoint point[3];
CPaintDC dc(this); // device context for painting
CRect rcClient;
GetClientRect(&rcClient);
int cx = rcClient.Width()/2;
int cy = rcClient.Height()/2;

CRect rcShape(cx - 45,cy - 45 ,cx + 45,cy + 45);
CBrush brush (RGB(255,0,0));
CBrush *pOldBrush = dc.SelectObject(&brush);

switch(m_nShape)
{
case 0:
dc.Ellipse(rcShape);
break;
case 1:
point[0].x = cx - 45;
point[0].y = cy + 45;
point[1].x = cx;
point[1].y = cy - 45;
point[2].x = cx + 45;
point[2].y = cy + 45;
dc.Polygon(point,3);
break;
case 2:
dc.Rectangle(rcShape);
break;
}
dc.SelectObject(pOldBrush);
}
--------------------------------
--------------------------------

一个简单的选择绘图程序,在前面选择的颜色,并把他的颜色选到了设备描述表,我想知道的就是最后这个dc.SelectObject(pOldBrush)是有什么用啊,既然选择颜色到设备描述表了,怎么结束的时候又进行一次选择.有知道了帮解答一下,我把这句删除了程序还是能运行的
展开
 我来答
魔高丈
2008-12-02 · TA获得超过9506个赞
知道大有可为答主
回答量:2066
采纳率:0%
帮助的人:3484万
展开全部
dc.SelectObject(pOldBrush)
的作用就是前面你选择了画刷,使用完画刷以后,要恢复到未选择画刷之前的画刷。

其实很多时候这样做没有用,这只是一个良好习惯的问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式