在Visual C ++上,如何制作一个简单的绘图程序?

时间:2009-10-22 16:21:52

标签: visual-c++ graphics

我想在visual c ++上制作一个简单的绘画程序,它允许用户绘制一系列直线的路径,这些直线彼此相继。用户完成此操作后,应双击以停止绘图。重要的是我记录路径每一行的起点和终点的坐标,因为我想使用这些信息来使用简单的数学来查找每条线的大小和方向。请有人可以给我一些启动和任何其他指导。

3 个答案:

答案 0 :(得分:1)

您应该从以下教程开始:MFC。 学习基础知识:文档/视图架构和 如何完成绘画(GDI和设备上下文)。

基本上,你应该: 1.创建一个MFC应用程序(SDI - 单文档界面), 2.处理OnLButtonDown(WM_LBUTTONDOWN),OnMouseMove(WM_MOVE),OnLButtonUp(WM_LBUTTONUP)。 3.维护点的动态数组/ List(TypedPtrList) 4.处理双击事件以检测完成。

您应该在每次点击(之后)使用Invalidate()函数,以便查看更改 在屏幕上。

这只是一些让你入门的信息

答案 1 :(得分:0)

你想要:

  • 表示一个点的类或结构(如果你使它成为一个类,它可能有计算方法,例如,计算到另一个点的距离和方向)
  • 成员变量:容纳您的积分的容器类(列表,数组等)的实例
  • 一个成员变量:一个布尔标志来表示你是否正在绘画(从不开始)

你需要处理:

  • 鼠标单击事件以实例化一个点并将其添加到容器中
  • 鼠标移动事件从最后一个点到当前鼠标位置绘制一条线如果绘图标志为真
  • 鼠标双击事件,将双击位置添加到点容器并关闭绘图标记

Yaron的策略在点击2点之前不会绘制线条。我使用“橡皮筋”来固定线的第一端,然后让第二端跟随光标直到你点击将其固定下来。使用你喜欢的任何一个。

答案 2 :(得分:0)

如果我是你,我会使用Qt。 Qt小部件非常适合用户界面。你应该查看qt例子......

如果您想要进行图像处理,可以使用imagemagick库。 这个库非常适合任何图像处理。