当前例程从CWnd派生出一个CLineChartCtrl,用于实现一个曲线绘制控件。效果如下图
上位机MFC图标控件实现
程序一运行就会显示实时显示图表
程序在初始化时调用下载代码
m_wndLineChart.Add(RGB(0,255,0),100, 0);
m_wndLineChart.Add(RGB(255,255,0),100, 0);
m_wndLineChart.Add(RGB(0,255,255),100, 0);
SetTimer(1, 500, NULL);
向图表添加三个曲线,并启动了一个定时器
然后用定时器间隔更新图表数据
m_wndLineChart.Add(RGB(0,255,0),100, 0);
m_wndLineChart.Add(RGB(255,255,0),100, 0);
m_wndLineChart.Add(RGB(0,255,255),100, 0);
SetTimer(1, 500, NULL);
源代码下载地址:
使用方法如下:
1. 在对话框编辑器中添加一个定制控件,输入LINE_CHART_CTRL作为其类名。
2. 添加下面类成员到头文件:
#include "LineChartCtrl.h"
CLineChartCtrl m_wndLineChart;
3. 在对话框的InitDialog()函数添加下面语句:
//IDC_LINE_CHART_CTRL is the control ID
m_wndLineChart.SubclassDlgItem(IDC_LINE_CHART_CTRL, this);
4. 初始化该控件:
m_wndLineChart.Add(RGB(0,255,0),100, 0);
m_wndLineChart.Add(RGB(255,255,0),100, 0);
m_wndLineChart.Add(RGB(0,255,255),100, 0);
SetTimer(1, 500, NULL); // Create a timer to update the control
5. 在OnTimer(UINT nIDEvent) 中添加下面代码:
m_wndLineChart.SetPos(0,nPos0); // nPos0 is the currect postion
m_wndLineChart.SetPos(1,nPos1); // nPos1 is the currect postion
m_wndLineChart.SetPos(2,nPos2); // nPos2 is the currect postion
m_wndLineChart.Go(); // Make sure that the control updates with the new value
|