vc2008中ProEssentials控件使用

来源:互联网 发布:vscode 快捷键 编辑:程序博客网 时间:2024/06/04 17:56

为了做实时曲线显示,在VC2008中用第三方控件ProEssentials比较合适。资料比较少,写个日志,给自己参考。本程序用到的ProEssentials控件是Gigsoft pego v7(Graph Object ):Graph Control有X轴和Y轴两个坐标,X轴通常定义数据的时间节点,Y轴显示数值信息;

1、首先机器安装了Graph Object(pego)这个ocx控件——PEGO32E.OCX (对应的dll:PEGRP32E.DLL,所在路径:c:\windows\system32) 

2、然后,在对话框中右击->插入ActiveX控件(选择Gigsoft pego v7);

3、右击该控件->添加控件变量->会自动添加控件的类文件(自动生成pegoectrl1.cpp和pegoectrl1.h文件);

4、添加类 Project->Addclass ->MFC class from Typelib 选择Gigsoft  ProEssentials Graph v7<1.0>。这时工程中会生成两个头文件,根据需要添加相应头文件。

注:*在vc2008中,许多函数发生了改变,原来set开头的函数都变成了put_...,用法类似;帮助文档有好多例子可参考;

       *发布时需要将PEGO32E.OCX和对应的PEGRP32E.DLL打包进去;

       *ProEssentials控件的两个头文件-CDPegoe.h和CDPegoeEvents.h,需要时可加入;


5、相关代码如下(读取数据库表,绘曲线):

//pego控件绘制曲线

void CTestChartVC2008Dlg::DrawGraph(int iRow)
{//m_ProE为控件所在对话框对象;m_pego为控件变量;
m_ProE.m_pego.SetSubsets(1);//设置子集个数
m_ProE.m_pego.SetPoints(iRow);  //子集点数
//遍历数据集

_variant_t var;

CString sdata;
double dData=0;
wchar_t *stop;
int row=0;//从0开始
m_Recordset->MoveFirst();//移到m_Recordset第一行记录位置
while(!m_Recordset->adoEOF)  
{    
var=m_Recordset->GetCollect("Weigh");//m_Recordset单元数据
sdata =(LPCTSTR)_bstr_t(var);
dData=wcstod(sdata,&stop);//string to double
//设置Y轴
m_ProE.m_pego.put_YData(0,row,dData);

//设置x轴
var=m_Recordset->GetCollect("WeighTime");//m_Recordset单元数据
sdata=(LPCTSTR)_bstr_t(var);
m_ProE.m_pego.put_XData(0,row,(float)row);
m_ProE.m_pego.put_PointLabels(row,sdata);//坐标label-PointLabels are located below x axis

row++;
m_Recordset->MoveNext();

}
}



0 0
原创粉丝点击