一款带缩放功能的 2D 图表组件






4.92/5 (34投票s)
具有缩放功能的 2D 图形组件。
更新(2004 年 12 月 21 日)
- 在
SmartGraph
中,X 和 Y 轴的标签存在问题,现在已解决。 - 演示项目中的选择问题已解决。
- 输出文件的名称已更改为
SmartGraph
而不是 Graph。
引言
在我最近的项目中,我需要在 2D 图形中显示一些数据。该图形必须具有放大、缩小和着色的功能。起初,我直接在我的 VC 项目中编写了一些代码,结果令人满意,但我必须为任何新项目都这样做,这很耗时。所以,我想把它作为一个 ATL 组件来做,这样它就可以完成我需要的所有事情。这个 SmartGraph
正是我想要的。
SmartGraph
是使用 ATL 在 VC++ .NET 2003 中编写的,具有几个良好的方法、事件和属性,使其易于使用。
这个 SmartGraph
是一个 ActiveX 控件,因此可以在任何支持 ActiveX 的可视语言中使用,例如 Visual C++、Visual Basic、C#、Delphi 等。 它可以通过使用 SetData(.,.,.,true)
更快地重新采样其数据。 它也可以通过使用 SetPlotType(.)
被视为普通图形、点图形或条形图。
如何使用 SmartGraph?
要使用 SmartGraph
,您必须执行以下步骤
- 在命令提示符下使用以下命令注册
SmartGraph
:“regsvr32 <PATH>\Graph.dll”,或者仅编译“Graph.sln”。注意:如果您没有 VC++ .NET,则无法注册 Graph.dll,除非您将“msvcr71.dll”复制到您的 Windows 目录。(此文件附在本文中。)
- 在您的项目中,右键单击您的工具箱,然后单击“添加/删除项目”,然后从“COM 组件”选项卡中选择“SmartGraph”,现在它应该出现在您的工具箱中。
- 现在,只需单击它并将其拖到您的对话框中,现在创建一个变量并使用它
m_Graph.SetParentWnd(this->m_hWnd); /*SetParentWnd : Sets Parent Window because this component is WindowLess, it needs a handle for some painting operation.*/ m_Graph.SetPlotType(0);// Regular Graph m_Graph.put_xLable("Time"); m_Graph.put_yLable("Amplitude"); m_Graph.put_Title("Graph Test");
当您的数据准备就绪时,使用
m_Graph.SetData(xdata,ydata,nLen,true); m_Graph.UpdateGraph();
SmartGraph 属性
Back Color
:使用它来更改图形的背景颜色(put_BackColor
和get_BackColor
)。BorderColor
ForeColor
Title
:图形的标题。Columns
和Rows
:如果启用了网格,则要绘制的列数和行数 (ShowGrid(true)
)。xLable
和yLable
:出现在 X 轴和 Y 轴上的标签。MarginTop
、MarginLeft
、MarginRight
、MarginBottom
:标签、标题等的边距……
SmartGraph 方法
SetData
和SetData2
:如果您不想设置 X 和 Y 轴的最大值和最小值,请使用SetData
。 如果您想指定数据的最大值和最小值,请使用SetData2
。ShowGrid
UpdateGraph
SetPlotType
:0 - 常规, 1 - 点图, 2 - 条形图。ZoomIn
,ZoomInByPercent
:从样本/百分比“FromSample
”/“FromPercent
”到样本/百分比“ToSample
”/“ToPercent
”放大(x 轴)。ZoomOut
:将图形返回到上一个视图。Reset
:将图形返回到原始视图。GetDisplayedRange
:返回已显示的样本范围。SetLegendText
SmartGraph 事件
LButtonDown
LButtonUp
MouseMove
提供的示例应用程序很好地演示了这个 SmartGraph
。
使用,享受并指导我进行未来的改进。