我想在我的winapi C程序中画图,有啥控件吗?
Posted
技术标签:
【中文标题】我想在我的winapi C程序中画图,有啥控件吗?【英文标题】:I want to draw a graph in my winapi C program, is there any control?我想在我的winapi C程序中画图,有什么控件吗? 【发布时间】:2012-06-19 06:28:09 【问题描述】:在winapi32控件中是否有任何控件可以用来绘制这样的图表?
你不知道我怎么画一个吗?
(像这样!)
【问题讨论】:
我也想要这样的东西,在纯win32 api中 【参考方案1】:您会找到适用于 Windows API 的第三方图表控件 -http://www.gigasoft.com/graphinglibrary.htmlhttp://www.codeproject.com/Articles/14330/Custom-Control-Graph-and-Process-Bar
或者您可以使用 GDI 函数 LineTo 和 MoveTo 自己绘制折线图。
【讨论】:
【参考方案2】:您绝对应该在“Desktop Development -> Miscellaneous"”部分中的CodeProject 搜索任何类型的此类库。但就我而言,我会使用“A 2D data visualisation class”,它提供了一组非常好的功能(来自文章):
普通和散点图模式 自动缩放 缩放 适合宽度、高度和页面 鼠标坐标追踪 能够以交互方式添加和显示高达每秒 15000 个点(取决于计算机的速度) 平移支持 - 只需按住 shift 键,同时按住左键移动鼠标 可以在任何设备上下文(包括打印机)上绘制图表
另一种选择是使用 ready-to-go MFC 或 ActiveX 组件。第一个很好的例子是“Plot Graphic Library”,第二个例子是“GDI+ Plot ActiveX Control”。正如您已经提到的,所有这些库都基于 GDI Windows 工具。顺便说一句,您可以自己绘制这个简单的图形,因为 Windows 中的 GDI(和 GDI+)功能非常强大。
另请参阅“SoftIntegration Graphical Library (SIGL)”。该库包含许多不同的图和曲面。
但是,这只是关于 GDI。 另一个变体是使用 DirectX 或 OpenGL。对于后者,您绝对应该尝试 SDL(简单 DirectMedia 层):
是一个跨平台多媒体库,旨在通过 OpenGL 和 2D 视频帧缓冲区提供对音频、键盘、鼠标、操纵杆、3D 硬件的低级访问。 如您所见,它是一个跨平台库。
熟悉的好 SO 问题是:
“Plotting graphs in C++” “Graph drawing C++ library?” “Is there any 'out-of-the-box' 2D/3D plotting library for C++?”更新:
我忘了提到“ROOT”——它是我见过的最强大的图形库。实际上,它不是库,而是“数据分析框架”。图书馆的创建者是来自 CERN 的人。使用这个库,您可以构建几乎所有类型的绘图、曲面和图形。它是跨平台的,用 C++ 编写。 ROOT 具有:控制台版本(您可以在其中使用 C++ 编写命令,-ROOT 有自己的 C++ 编译器)和大量库来链接您的项目。您可以在 MSVS 2008 和 MSVS 2010 的帮助下构建 MFC 应用程序。
【讨论】:
以上是关于我想在我的winapi C程序中画图,有啥控件吗?的主要内容,如果未能解决你的问题,请参考以下文章