MFC 绘制矩形时怎么清除上一个矩形?
我的程序加上Invalidate()之后就不能画矩形了,想在每次绘制前清除上一次绘制的图形应该怎么做?LRESULTCClientDemoDlg::OnWMScreenF...
我的程序加上Invalidate()之后就不能画矩形了,想在每次绘制前清除上一次绘制的图形应该怎么做?
LRESULT CClientDemoDlg::OnWMScreenFocus(WPARAM wParam, LPARAM lParam)
{
// Invalidate();
CRect rect;
GetDlgItem(m_FocusScreenItem)->GetWindowRect(&rect);
ScreenToClient(&rect);
CBrush br;
CPen pen;
pen.CreatePen(PS_SOLID,3,RGB(121,146,221));
br.CreateStockObject(NULL_BRUSH);//8.26
CClientDC dc(this);
dc.SelectObject(&pen);
dc.SelectObject(&br);
dc.Rectangle(&rect);
return true;
}
不是在同一个位置的,是想画第二个时清除第一个。 展开
LRESULT CClientDemoDlg::OnWMScreenFocus(WPARAM wParam, LPARAM lParam)
{
// Invalidate();
CRect rect;
GetDlgItem(m_FocusScreenItem)->GetWindowRect(&rect);
ScreenToClient(&rect);
CBrush br;
CPen pen;
pen.CreatePen(PS_SOLID,3,RGB(121,146,221));
br.CreateStockObject(NULL_BRUSH);//8.26
CClientDC dc(this);
dc.SelectObject(&pen);
dc.SelectObject(&br);
dc.Rectangle(&rect);
return true;
}
不是在同一个位置的,是想画第二个时清除第一个。 展开
3个回答
展开全部
Invalidate();一般加在return true前,用于更新视图。
清除图形的话,绘制白底矩形就可以了
在删除图形位置,绘制与用背景色填充的矩形,比如,你的背景是灰色,就重新绘制灰色矩形
清除图形的话,绘制白底矩形就可以了
在删除图形位置,绘制与用背景色填充的矩形,比如,你的背景是灰色,就重新绘制灰色矩形
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、继承CWnd函数:
InvalidateRect(NULL);
UpdateWindow();
2\更多交流参考我空间文章。
InvalidateRect(NULL);
UpdateWindow();
2\更多交流参考我空间文章。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询