上一课笨笨给大家介绍了CChart饼图的绘制方法,这一课介绍柱图,这也是应用非常广的一种图表形式。

按第一课的方法建立一个VC项目Lesson07

同样我们只需要修改WM_CREATE的响应例程,如下。


case WM_CREATE:
	chartWnd.Attach(hWnd, kTypeStem);
	{
		double pY[5];
		pY[0] = 3.0;
		pY[1] = 5.0;
		pY[2] = 4.0;
		pY[3] = 2.0;
		chartWnd.GetChart()->AddStems(pY, 4);
		chartWnd.GetChart()->SetDataTitle("代理商甲销量", 0);
	}
	break;
 

上面用AddStems添加一个序列。

运行程序,得到图像如下。

SouthEast

下面我们给每根柱子加上标签。修改WM_CREATE消息的响应例程如下。

case WM_CREATE:
	chartWnd.Attach(hWnd, kTypeStem);
	{
		double pY[5];
		pY[0] = 3.0;
		pY[1] = 5.0;
		pY[2] = 4.0;
		pY[3] = 2.0;
		chartWnd.GetChart()->AddStems(pY, 4);
		chartWnd.GetChart()->SetDataTitle("代理商甲销量", 0);

		chartWnd.GetChart()->SetStemLabel(_T("一季度"), 0);
		chartWnd.GetChart()->SetStemLabel(_T("二季度"), 1);
		chartWnd.GetChart()->SetStemLabel(_T("三季度"), 2);
		chartWnd.GetChart()->SetStemLabel(_T("四季度"), 3);
	}
	break;
 

利用SetStemLabel可以修改柱子的标签。

运行结果如图。

SouthEast

前面只画了一个序列,CChart支持在柱图中绘制多个序列。添加新序列的方法完全一样。

下面继续修改WM_CREATE的响应例程。

case WM_CREATE:
	chartWnd.Attach(hWnd, kTypeStem);
	{
		double pY[5];
		pY[0] = 3.0;
		pY[1] = 5.0;
		pY[2] = 4.0;
		pY[3] = 2.0;
		chartWnd.GetChart()->AddStems(pY, 4);
		chartWnd.GetChart()->SetDataTitle("代理商甲销量", 0);

		chartWnd.GetChart()->SetStemLabel(_T("一季度"), 0);
		chartWnd.GetChart()->SetStemLabel(_T("二季度"), 1);
		chartWnd.GetChart()->SetStemLabel(_T("三季度"), 2);
		chartWnd.GetChart()->SetStemLabel(_T("四季度"), 3);

		pY[0] = 4.0;
		pY[1] = 1.0;
		pY[2] = 6.0;
		pY[3] = 3.0;
		chartWnd.GetChart()->AddStems(pY, 4);
		chartWnd.GetChart()->SetDataTitle("代理商乙销量", 1);
	}
	break;
 

运行效果如图。

SouthEast

最后我们给柱图加上标题。

在上面的break;一行前面插入一行。


chartWnd.GetChart()->SetTitle(_T("代理商销量"));
效果如图。

SouthEast

同学们移动一下鼠标,可以发现柱图同样有交互功能,这里就不细表了。

这节课也很简单,现在下课。