各位用过CChart的小伙伴们,笨笨的这个控件还算好使吧。
慢着,慢着,让我想想,CChart是一个控件吗?好像顶多就是一个类库吧,根本就不是正儿八经的控件。
呵呵,本节课就给大家介绍一下CChart怎么作为一个Windows标准控件来使用。
还是按前面的规矩吧。
第一步,建立一个基于对话框的MFC程序LessonA12。
第二步,在LessonA12.h文件的头部加入CChart头文件和函数库的引用。
第三步,在主对话框中删除掉原来那个标签,并添加一个Custom Control控件。设置其ID为IDC_CHART,并设置其Class为ChartCtrl。这里Class的设置是关键,大小写无所谓,但一个字母也不能差。
如图所示。
ChartCtrl就是笨笨编写的这个Windows标准控件的类名,和edit、static等标准控件类似。所谓标准控件,无非就是Windows下注册的一个窗口类,笨笨用“ChartCtrl”这个名字注册了一个窗口类,大家可以直接使用。
第四步,打开LessonA12Dlg.cpp,在OnInitDialog函数里面,添加如下代码。
// TODO: Add extra initialization here
CWnd *pWnd = GetDlgItem(IDC_CHART);
CChart *chart = GetChart(pWnd->m_hWnd);
int n=100;
for(int i=-n; i<n; i++)
{
chart->AddPoint2D(i/(double)n, i*i/double(n*n));
}
注意这里的代码,我们利用GetChart()获得了一个CChart类对象的指针。这个函数定义如下。
CChart *GetChart(HWND hWnd);
我们看到这个函数非常简单,只有一个参数,这个参数是一个窗口句柄。这里就要注意了,不是任何窗口都能获得CChart指针的哟,使用这个函数之前请确认这个窗口是一个ChartCtrl控件窗口。
获得CChart指针以后,需要干什么我想小伙伴们都明白了,就像洞房之夜,不需要笨笨来指导吧,哈哈。
好了,现在运行程序,效果如图。
可以看到,利用ChartCtrl控件编程也是非常非常简洁的。