MFC 如何清除已画图像问题 5

我的绘图代码是写在一般函数中,绘图的内容是一棵二叉树,直接显示在静态文本的控件里面。然后我想要在每一次按button的时候重新绘制。于是我在button的函数里加了dcd... 我的绘图代码是写在一般函数中,绘图的内容是一棵二叉树,直接显示在静态文本的控件里面。
然后我想要在每一次 按 button的时候重新绘制。于是我在button的函数里加了
dcd->Invalidate(true);
dcd->UpdateWindow();
这样两句,但是运行起来的时候,并没有清除原来已有的图像。新的图像重叠在原来图像上面了。
请问怎么办?怎么样才能做到每次都能清楚。
展开
 我来答
tn瓶邪
推荐于2016-07-05 · TA获得超过1881个赞
知道小有建树答主
回答量:610
采纳率:98%
帮助的人:112万
展开全部
利隐段神用函数SetROP2:
CPoint m_ptBegin; //起始点
CPoint m_ptOrigon; //前一个点
OnLButtonDown中
m_ptBegin = m_ptOrigon = point;
OnMouseMove中
CClientDC dc(this);
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(255,0,0));
CPen * pOldPen = dc.SelectObject(&pen);
if(point != m_ptOrigon)
{
dc.SetROP2(R2_NOTXORPEN);
dc.MoveTo(m_ptBegin);
dc.LineTo(m_ptOrigon);
dc.MoveTo(m_ptBegin);
dc.LineTo(point);
m_ptOrigon = point;
}
就可以实灶亏现了。燃散
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wwylele
2013-08-29 · TA获得超过2523个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:1089万
展开全部
省事的办法就是用FillRect函数画一个覆盖整个区域的白色矩形
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
挨踢老李
2013-08-30 · TA获得超过876个赞
知道小有建树答主
回答量:1176
采纳率:50%
帮助的人:947万
展开全部
把你这两句删掉,改成Invalidate(true);试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
任明星Ming
2013-08-29 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1146万
展开全部
你要重画背景,不然穗含背景会重叠。给你迹兄个猜州笑参考例子,获取背景画刷的:

http://blog.csdn.net/renstarone/article/details/9089835
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouadw
2013-08-29 · TA获得超过102个赞
知道答主
回答量:90
采纳率:100%
帮助的人:96.2万
展开全部
你试试直接重绘窗口,而不是文本控件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式