MFC,如何在移动时用鼠标光标重画项目

问题描述:

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

我尝试使用失效,但屏幕会闪烁, 我尝试使用InvalidateRect,但该项目将在屏幕上重新绘制越来越多次。

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

很好,我得到的解决方案是在OnEraseBkgnd函数使用返回true,

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

我的物品绘制在矩形...

当您使用InvalidateRect时,您需要调用它两次 - 一次在需要擦除的旧位置,一次位于需要绘制的新位置。如果两者重叠甚至完全相同即可。

+0

非常感谢,你能举个例子! – user1753112