MFC更新图像时,旧位置的图像怎么清除?

2024-12-28 19:42:27
推荐回答(5个)
回答1:

既然旧的图像你不想让他显示了,为什么画新图像的时候你不把它的区域画的大一些,直接把旧的覆盖了不就行了。

回答2:

你是在OnPaint()或者OnDraw()中绘制的吧 ?
每次调用InvalidateRect(NULL)系统都会重绘窗口,也就是调用OnPaint()或者OnDraw()函数,然后又调用InvalidateRect(NULL),从而陷入了死循环

问题在于不能再OnPaint()或者OnDraw()函数中调用InvalidateRect(NULL),放在普通的函数中即可。不过你这个内存贴图的方式很不错的哦

回答3:

CRect rect;//设置成原图像的矩形
CBrush brush;
brush.CreateSolidBrush(RGB(255, 255, 255));//设置成背景的颜色,如果不知道用rgb取色器取rgb值
//画实心矩形
pDC->FillRect(&rect, &brush);//画矩形把原图片覆盖成背景纯色

回答4:

invalidate或者UpdateData,记得好像,好久没动vc了记得不是太清楚了~

回答5:

画刷重绘怎么样? 我不知道 我也和你一样的问题