如何在MFC中拖动多边形?

时间:2013-11-27 11:30:48

标签: visual-c++ mfc

我是MFC的新手。我知道如何绘制一条线以及如何在MFC中涂鸦。我使用CDC和一些函数,如LineTo()和MoveTo()来做到这一点。此外,我有FillRect()和Rectangle()。现在我想在视图中拖动我的矩形或任何多边形。就像你在桌面上拖动一个图标。

我认为第一步是获取区域。然后擦除旧的多边形,当鼠标移动时绘制一个相同的多边形,这取决于鼠标移动的点。 所以我在MSDN中搜索区域,我得到了Region类和CRgn类。但是在我调查这两个类之前,我想知道我是否正确的方向。

我需要更多关于如何学习MFC的建议。实际上,我所需要的只是完成我的作业,主要是绘制多边形并拖动它们并逐行链接。我希望我可以自己和MSDN完成这项功课。 MSDN可以帮我这么做吗?

1 个答案:

答案 0 :(得分:0)

CDC :: Polyline函数将比使用LineTo和MoveTo更快地绘制多边形。

您不需要区域,也不需要删除旧的多边形。相反,您需要在视图OnDraw中绘制所有内容。要使用鼠标进行的任何更改都应更改表示多边形的坐标数组,然后调用Invalidate。换句话说,不要在鼠标消息处理程序中绘制。在鼠标消息处理程序中调用Invalidate将导致稍后调用OnDraw,它应重新绘制整个视图。