一个很好用的图形显示控件(可以用于实时采集的图像显示)
2009-07-17 08:14
645 查看
昨天上网意外发现一个很好的图像显示控件,以前做上位机,对实时图像数据的显示没有很好的解决方案,真是踏破铁鞋无觅处,得来全不费功夫!很是兴奋!
具体控件使用方法:
首先注册控件:regsvr32 NTGraph.ocx
regsvr32 /u NTGraph.ocx//反注册控件
然后建立VC工程,插入上述控件!这样你会看到你的工程中多了三个类;
然后在对话框初始化函数中初始化控件,方法如下:
m_Graph.SetElementLineColor(RGB(125,255,0));
m_Graph.SetElementLineColor(RGB(255,255,0));
m_Graph.SetElementIdentify(FALSE);
m_Graph.SetShowGrid(TRUE);
m_Graph.SetXGridNumber(10);//设置X轴等分点数,即网格宽度(注意和函数SetRange()的关系)
m_Graph.SetYGridNumber(10);//设置Y轴等分点数
m_Graph.SetCaption("Test Graph Control");//设置标题
m_Graph.SetXLabel("X轴");//设置横轴名称
m_Graph.SetYLabel("Y轴");//设置纵轴名称
m_Graph.SetRange (0,500,-50,50);//设置横轴和纵轴的范围,前两位是横轴,后两位是纵轴
m_Graph.AddElement(); //再加一个曲线
this->SetTimer(1,10,NULL) ;//利用定时器产生实时数据
然后在定时器中显示图像,程序如下:
this->m_Graph.ClearGraph() ;
m_Graph.SetElementLineColor(RGB(0,255,0));
this->m_Graph.AddElement() ;
m_Graph.SetElementLineColor(RGB(225,255,0));
this->AddData(this->data,20*cos(temp)) ;
this->AddData(this->data1,30*rand()*sin(temp)/65535) ;
temp=temp+0.1 ;
for(int i=0;i<500;i++)
{
this->m_Graph.PlotXY(i,this->data[i],0) ;
this->m_Graph.PlotXY(i,this->data1[i],1) ;
}
这样就OK了,很简单吧!
于是就用VC编了一个实验程序,效果如下:
具体控件使用方法:
首先注册控件:regsvr32 NTGraph.ocx
regsvr32 /u NTGraph.ocx//反注册控件
然后建立VC工程,插入上述控件!这样你会看到你的工程中多了三个类;
然后在对话框初始化函数中初始化控件,方法如下:
m_Graph.SetElementLineColor(RGB(125,255,0));
m_Graph.SetElementLineColor(RGB(255,255,0));
m_Graph.SetElementIdentify(FALSE);
m_Graph.SetShowGrid(TRUE);
m_Graph.SetXGridNumber(10);//设置X轴等分点数,即网格宽度(注意和函数SetRange()的关系)
m_Graph.SetYGridNumber(10);//设置Y轴等分点数
m_Graph.SetCaption("Test Graph Control");//设置标题
m_Graph.SetXLabel("X轴");//设置横轴名称
m_Graph.SetYLabel("Y轴");//设置纵轴名称
m_Graph.SetRange (0,500,-50,50);//设置横轴和纵轴的范围,前两位是横轴,后两位是纵轴
m_Graph.AddElement(); //再加一个曲线
this->SetTimer(1,10,NULL) ;//利用定时器产生实时数据
然后在定时器中显示图像,程序如下:
this->m_Graph.ClearGraph() ;
m_Graph.SetElementLineColor(RGB(0,255,0));
this->m_Graph.AddElement() ;
m_Graph.SetElementLineColor(RGB(225,255,0));
this->AddData(this->data,20*cos(temp)) ;
this->AddData(this->data1,30*rand()*sin(temp)/65535) ;
temp=temp+0.1 ;
for(int i=0;i<500;i++)
{
this->m_Graph.PlotXY(i,this->data[i],0) ;
this->m_Graph.PlotXY(i,this->data1[i],1) ;
}
这样就OK了,很简单吧!
于是就用VC编了一个实验程序,效果如下:
相关文章推荐
- 一个可用于实时采集的图像显示控件-用于数据采集的上位机显示中
- QT5-控件-QScrollArea-可以用于把一个窗口分割为多个-比如根据图片大小显示滚动条
- 一个可以显示具体时间的日历控件应用
- 用OpenCV在MFC Dialog中Picture控件上显示摄像头采集实时视频
- MFC/QT 在控件上实时显示图像
- 图像处理之基础---很好的一个快速比较两副图片是否相同的code 可用于公安鉴别
- 一个可以实时显示进度的自定义view,类似于listview中音乐播放背景变化的效果
- 封装一个Win32弹出提示框的函数(用于Window控件 显示Tooltip)
- Button 控件用于显示一个按钮。
- jquery bootgrid 一个很好的 数据控件,可用于任何语言
- 一个可以靠右显示的简单Edit控件
- android如果重写onDraw实现一个类似TextView可以显示表情和链接的控件(一)
- 一个可以显示图片(包括GIF动画)的ATL控件,以及在RichEdit中如何使用此控件插入图片
- 数据绑定控件[选择类型控件]、图像显示控件【哈哈、28号就可以回家啦、亲们回家过中秋节啦~!各位们都淡定点啊~!】
- php实现的一个很好用HTML解析器类可用于采集数据
- 一个可以显示图片(包括GIF动画)的ATL控件,以及在RichEdit中如何使用此控件插入图片
- 一个很好很强大的js时间控件:显示年,月,日,时,分,秒
- 一个显示等级进度的控件,可以自定义等级值、颜色、游标等。
- 收藏一个很好用的Ajax上传控件,可以放在UpdatePanel里面使用.
- iOS : 判断两个控件是否重合.(可用于判断某一个控件是否显示在window上)