MFC,移动时如何使用鼠标光标重新绘制项目

时间:2014-02-13 03:52:21

标签: mfc paint

现在,我在对话框中定义了三个CRect区域,然后我用textout函数绘制了一个ID,每个CRect for One ID,我想使用OnLButtonDown,OnMouseMove和OnLButtonUp记录我的鼠标光标当鼠标移动时,ID将用光标重新绘制。

我尝试使用Invalidate,但屏幕会闪烁, 我尝试使用InvalidateRect,但该项目将在屏幕上重绘次数。

我该怎么办?有任何例子。

2 个答案:

答案 0 :(得分:0)

使用InvalidateRect时,需要调用两次 - 一次在需要擦除的旧位置,一次在需要绘制的新位置。如果两者重叠甚至相同,那就没关系。

答案 1 :(得分:0)

好吧,我得到的解决方法是在OnEraseBkgnd函数中使用return true,

删除闪屏问题。现在我可以使用invalidate(true)来重绘

我在rect ...中绘制的项目。