原创 VC6环境下使用图形控件NTGraph的方法和步骤

2009-4-14 14:27 12179 6 9 分类: 软件与OS

源出处:http://www.codeproject.com/KB/miscctrl/ntgraph_activex.aspx


先看看NTGraph控件的运行效果吧,如下图。感觉效果挺不错的,主要是接口函数非常简单,只需要调用几个函数就能实现我们需要的功能,可谓功能强大了。


主要还是基于VC6环境,对开发上位机的朋友来说是个不错的工具。



点击开大图



首先注册控件。点击开始->运行,然后输入regsvr32 /u NTGraph.ocx/u是控件路径),点确定。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


接下来打开VC6,新建一个基于对话框的工程,工程名为CNTGraph_Test,将默认的控件删除,然后在对话框上点击右键,选择Insert ActiveX Control,如下图:



点击开大图



在打开的窗口中选择NTGraph Control(就是我们之前注册的控件),点OK。如下图:


点击开大图


控件已加载进来,如下图示:


点击开大图


接下来根据需要来修改一些属性,见下图,我只修改了frame(改变空间显示风格)、Show Grid(显示网格)两项,当然不修改属性或者在程序里修改都行。


点击开大图


接下来给控件添加一个对象,这个对象可以访问NTGraph类中的成员函数。


点击菜单栏上的view->ClassWizard->Member Variables,然后选择IDC_NTGRAPHCTRL,点击Add Variable给它添加一个变量m_Graph,这时会出现如下图对话框,点击确定就可以了。



点击开大图



经以上添加变量成功之后,控件会自动给我们添加3个类,如下图示。这三个类给我们提供了许多函数接口,只需要看函数名即可知道这些函数的功能了。


28bf7d59-1000-4f83-9757-094c42bc3824.jpg


到此控件的添加和设置就完成了,接下来即可在程序里调用相关函数来实现我们想要的功能了。


将以下这些代码贴到OnInitDialog()函数里面就OK啦。


 


       m_Graph.ClearGraph();


 


    // The Element [0] is allocated by default


    m_Graph.SetElementLineColor(RGB(125,255,0));


        


    // Add the second graph element


    m_Graph.AddElement();


    m_Graph.SetElementLineColor(RGB(255,255,0));


 


    m_Graph.SetElementIdentify(FALSE);


 


       m_Graph.SetShowGrid(TRUE);


       m_Graph.SetXGridNumber(20);//设置X轴等分点数,即网格宽度(注意和函数SetRange()的关系)


       m_Graph.SetYGridNumber(20);//设置Y轴等分点数


 


    m_Graph.SetCaption("超好用的图形控件");//设置标题


       m_Graph.SetXLabel("X");//设置横轴名称


       m_Graph.SetYLabel("Y");//设置纵轴名称


 


    m_Graph.SetRange (0,100,-50,50);//设置横轴和纵轴的范围,前两位是横轴,后两位是纵轴


 


    for(float x = 0;x<100;x+=0.1) //这是我自己写的代码,用于显示一个正弦波


       {


              m_Graph.PlotXY(x, 10*sin(x), 0);


       }


 


    for(int xx = 0;xx<1000;xx+=10) //这是我自己写的代码,用于显示一个三角波


       {


           if(xx/10%2)


                  m_Graph.PlotXY(xx, 20, 1);


           else


                  m_Graph.PlotXY(xx, 40, 1);


       }


 


然后编译,执行,运行效果图:



点击开大图



总结:一步一步的按照以上步骤来设置,即可完成一个简单的应用程序了,相对来说过程非常简单,只需初始化一次控件,然后在需要的地方调用GraphPlotXY()函数就可以实现图形的显示了。还可以在程序里动态的改变量程,只需调用SetRange()


还有好多函数都没有用到,这里只是简单的演示了一个功能,具体的用法和扩展功能请参考上面列出的网页和作者的演示工程代码。


感谢这位老外作者提供的控件和源码。


--END--


 


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户377235 2016-6-1 16:34

最前面还要加上#include "math.h" 否则有错误

用户377235 2013-11-20 08:56

想知道实时曲线怎么绘制?

用户377235 2013-7-13 10:58

提示sin未定义
相关推荐阅读
用户100068 2009-04-22 10:20
ATmage128操作16位AD芯片MAX1168的完整程序
/****************引脚定义*********************************接口:硬件SPIPB.1(SCK)    SCLK   方向:1PB.2(MOSI)   D...
用户100068 2009-04-12 19:06
DA转换芯片MAX518的完整程序
MAX518特点; 单+5V电源,8位转换精度,I2C接口,可选单通道输出或双通道同时输出 /********************************** 晶振:11.0592M 模拟I2C总...
EE直播间
更多
我要评论
3
6
关闭 站长推荐上一条 /3 下一条