我想在我的winapi C程序中画一个图形,有什么控件吗?

问题描述 投票:0回答:3

winapi32控件中有没有可以用来画这样的图的控件?

你不知道我怎样才能画一个吗?

enter image description here

(类似这样的!)

c windows winapi controls
3个回答
8
投票

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

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


6
投票

您绝对应该在“桌面开发 -> 其他”部分中的CodeProject中搜索任何类型的此类库。但对我来说,我会使用“A 2D 数据可视化类”,它提供了一组非常好的功能(来自文章):

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

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

另请参阅“SoftIntegration 图形库 (SIGL)”。该库包含许多不同的绘图和曲面。

但是,这只是关于 GDI。 另一种变体是使用 DirectX 或 OpenGL。对于后者,您绝对应该尝试 SDL(简单 DirectMedia 层):

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

需要熟悉的好问题是:

更新:

我忘了提及“ROOT”——它是我见过的最强大的图形库。实际上,它不是一个库,而是“数据分析框架”。该库的创建者是来自 CERN 的人。通过这个库,您可以构建几乎所有您能想象到的绘图、曲面和图形。它是跨平台的,用 C++ 编写。 ROOT 具有:控制台版本(您可以在其中用 C++ 编写命令,- ROOT 有自己的 C++ 编译器)和大量与您的项目链接的库。您可以在 MSVS 2008 和 MSVS 2010 中借助它来构建 MFC 应用程序。


0
投票

是的,请参阅此处 J. Bremner 的 Windex:

https://github.com/JamesBremner/windex

这是一个纯 C++ 头文件库,采用纯 WINAPI。

最近更新了一些重要的新功能,非常好。

© www.soinside.com 2019 - 2024. All rights reserved.