65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.92/5 (34投票s)

2004年9月1日

CPOL

2分钟阅读

viewsIcon

312638

downloadIcon

21542

具有缩放功能的 2D 图形组件。

Sample Image - SmartGraph2.png

更新(2004 年 12 月 21 日)

  1. SmartGraph 中,X 和 Y 轴的标签存在问题,现在已解决。
  2. 演示项目中的选择问题已解决。
  3. 输出文件的名称已更改为 SmartGraph 而不是 Graph。

引言

在我最近的项目中,我需要在 2D 图形中显示一些数据。该图形必须具有放大、缩小和着色的功能。起初,我直接在我的 VC 项目中编写了一些代码,结果令人满意,但我必须为任何新项目都这样做,这很耗时。所以,我想把它作为一个 ATL 组件来做,这样它就可以完成我需要的所有事情。这个 SmartGraph 正是我想要的。

SmartGraph 是使用 ATL 在 VC++ .NET 2003 中编写的,具有几个良好的方法、事件和属性,使其易于使用。

这个 SmartGraph 是一个 ActiveX 控件,因此可以在任何支持 ActiveX 的可视语言中使用,例如 Visual C++、Visual Basic、C#、Delphi 等。 它可以通过使用 SetData(.,.,.,true) 更快地重新采样其数据。 它也可以通过使用 SetPlotType(.) 被视为普通图形点图形条形图

Bar Graph

如何使用 SmartGraph?

要使用 SmartGraph,您必须执行以下步骤

  1. 在命令提示符下使用以下命令注册 SmartGraph:“regsvr32 <PATH>\Graph.dll”,或者仅编译“Graph.sln”。

    注意:如果您没有 VC++ .NET,则无法注册 Graph.dll,除非您将“msvcr71.dll”复制到您的 Windows 目录。(此文件附在本文中。)

  2. 在您的项目中,右键单击您的工具箱,然后单击“添加/删除项目”,然后从“COM 组件”选项卡中选择“SmartGraph”,现在它应该出现在您的工具箱中。
  3. 现在,只需单击它并将其拖到您的对话框中,现在创建一个变量并使用它
    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_BackColorget_BackColor)。
  • BorderColor
  • ForeColor
  • Title:图形的标题。
  • ColumnsRows:如果启用了网格,则要绘制的列数和行数 (ShowGrid(true))。
  • xLableyLable:出现在 X 轴和 Y 轴上的标签。
  • MarginTopMarginLeftMarginRightMarginBottom:标签、标题等的边距……

SmartGraph 方法

  • SetDataSetData2:如果您不想设置 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

使用,享受并指导我进行未来的改进。

© . All rights reserved.