2013-11-27 68 views
0

我是MFC新手。我知道如何绘制线条以及如何在MFC中涂抹。我使用CDC和一些函数,如LineTo()和MoveTo()来执行此操作。此外,我有FillRect()和Rectangle()。现在我想在视图中拖动矩形或任意多边形。就像在桌面上拖动图标一样。如何在MFC中拖动多边形?

我认为第一步是获得region.Then擦除旧的多边形,当鼠标移动绘制依赖于点鼠标去同一个多边形。 所以我在MSDN中搜索区域,我得到了地区级和CRGN class.But之前,我考虑这两个类,我想知道我是否在正确的方向。

我需要如何学习MFC更多建议。实际上,我所需要做的就是完成我的作业,主要是绘制多边形并拖动它们并将它们连接起来。我希望自己和MSDN都能完成这个作业。 MSDN能帮我做到吗?

+0

你不需要的区域要做到这一点 - 地方保存你的多边形点在多边形时首先绘制,然后处理鼠标按下,鼠标释放和鼠标移动找到你的程序的偏移量,你需要绘制一个新的位置。在绘图过程中将偏移量添加到原始点....您明白了吗? –

+0

检查MFC示例DRAWCLI。 –

回答

0

的CDC ::折线功能会比使用的LineTo并通过MoveTo更快绘制多边形。

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

相关问题