我想在我的winapi C程序中绘制图形,有任何控制吗?

时间:2012-06-16 12:13:47

标签: c windows winapi controls

是否有任何控件可用于在winapi32控制中绘制这样的图表?

你不知道我怎么画一个?

enter image description here

(类似这样!)

2 个答案:

答案 0 :(得分:6)

您将找到Windows API的第三方图表控件 -
http://www.gigasoft.com/graphinglibrary.html
http://www.codeproject.com/Articles/14330/Custom-Control-Graph-and-Process-Bar

或者您可以使用GDI函数 LineTo MoveTo 自行绘制折线图。

答案 1 :(得分:6)

你绝对应该在CodeProject部分的Desktop Development -> Miscellaneous"搜索任何类型的此类库。但就我而言,我会使用“A 2D data visualisation class”这提供了一个非常好的一组特征(来自文章):

  
      
  • 普通和散点图模式
  •   
  • 自动
  •   
  • 缩放
  •   
  • 适合宽度,高度和页面
  •   
  • 鼠标坐标跟踪
  •   
  • 能够以每秒15,000点的速度交互式添加和显示(取决于计算机的速度)
  •   
  • 平移支持 - 只需按住Shift键,同时按住左键移动鼠标   图表可以在任何设备上下文中绘制,包括打印机的
  •   

另一种选择是使用准备就绪 MFC ActiveX 组件。第一个的非常好的例子是“Plot Graphic Library”,第二个的例子是“GDI+ Plot ActiveX Control”。正如您已经提到的,所有这些库都基于GDI Windows工具。顺便说一句,你可以自己绘制这个简单的图形,因为Windows中的GDI(和GDI +)工具非常强大。

另请参阅“SoftIntegration Graphical Library (SIGL)”。该库包含许多不同的图和表面。

但是,再一次,它只是关于GDI。 另一种变体是使用DirectX或OpenGL。对于后者,你一定要尝试 SDL (Simple DirectMedia Layer):

  

是一个跨平台的多媒体库,旨在通过OpenGL和2D视频帧缓冲提供对音频,键盘,鼠标,操纵杆,3D硬件的低级访问。   正如您所看到的那样,它是一个跨平台库。

熟悉的好问题是:

<强>更新

我忘了提及“ROOT” - 它是我见过的最强大的图库。实际上,它不是一个图书馆,它是“数据分析框架”。图书馆的创作者是来自欧洲核子研究中心的人。使用这个库,您可以构建几乎所有类型的绘图,曲面和图形。它是跨平台的,用C ++编写。 ROOT具有:控制台版本(您可以在C ++中编写命令, - ROOT具有自己的C ++编译器)以及一组与您的项目链接的大量库。您可以在MSVS 2008和MSVS 2010中帮助构建MFC应用程序。