MFC 如何清除已画图像问题 5
我的绘图代码是写在一般函数中,绘图的内容是一棵二叉树,直接显示在静态文本的控件里面。然后我想要在每一次按button的时候重新绘制。于是我在button的函数里加了dcd...
我的绘图代码是写在一般函数中,绘图的内容是一棵二叉树,直接显示在静态文本的控件里面。
然后我想要在每一次 按 button的时候重新绘制。于是我在button的函数里加了
dcd->Invalidate(true);
dcd->UpdateWindow();
这样两句,但是运行起来的时候,并没有清除原来已有的图像。新的图像重叠在原来图像上面了。
请问怎么办?怎么样才能做到每次都能清楚。 展开
然后我想要在每一次 按 button的时候重新绘制。于是我在button的函数里加了
dcd->Invalidate(true);
dcd->UpdateWindow();
这样两句,但是运行起来的时候,并没有清除原来已有的图像。新的图像重叠在原来图像上面了。
请问怎么办?怎么样才能做到每次都能清楚。 展开
5个回答
展开全部
利隐段神用函数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;
}
就可以实灶亏现了。燃散
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;
}
就可以实灶亏现了。燃散
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
省事的办法就是用FillRect函数画一个覆盖整个区域的白色矩形
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你这两句删掉,改成Invalidate(true);试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你试试直接重绘窗口,而不是文本控件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询