MFC中如何删除上次的绘图
时间: 2024-01-08 11:04:59 浏览: 39
在MFC中,可以通过以下方法删除上次的绘图:
1. 在绘制下一帧之前,先调用CDC类的FillSolidRect()方法,使用背景色填充整个窗口或绘图区域,从而清除上次绘制的图形。
例如:
```
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(rect, GetSysColor(COLOR_WINDOW));
```
2. 在OnPaint()函数中,先调用CPaintDC类的FillSolidRect()方法,使用背景色填充整个窗口或绘图区域,从而清除上次绘制的图形。
例如:
```
void CMyView::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
dc.FillSolidRect(rect, GetSysColor(COLOR_WINDOW));
// 绘制新的图形
}
```
3. 在绘制下一帧之前,使用CDC类的SelectObject()方法选择一个空的画笔或画刷,从而覆盖上次绘制的图形。
例如:
```
CBrush brush;
brush.CreateStockObject(NULL_BRUSH);
pDC->SelectObject(&brush);
```
4. 在OnPaint()函数中,使用CPaintDC类的SelectObject()方法选择一个空的画笔或画刷,从而覆盖上次绘制的图形。
例如:
```
void CMyView::OnPaint()
{
CPaintDC dc(this);
CBrush brush;
brush.CreateStockObject(NULL_BRUSH);
dc.SelectObject(&brush);
// 绘制新的图形
}
```
以上方法中,第一种和第二种方法是最常用的,它们都是在绘制下一帧之前清除上次绘制的图形,而第三种和第四种方法则是在绘制下一帧之前使用空的画笔或画刷覆盖上次绘制的图形。