程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 深入淺出CChart 每日一課——第七課 屌絲之殇,擎天一柱之柱圖

深入淺出CChart 每日一課——第七課 屌絲之殇,擎天一柱之柱圖

編輯:關於C語言

上一課笨笨給大家介紹了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

同學們移動一下鼠標,可以發現柱圖同樣有交互功能,這裡就不細表了。

這節課也很簡單,現在下課。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved