程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 深入淺出CChart 每日一課——第十六課 實習之旅,百年老店之新銳WTL

深入淺出CChart 每日一課——第十六課 實習之旅,百年老店之新銳WTL

編輯:關於C語言

上節課笨笨給大家介紹了CChart在微軟MFC框架下的應用,本節課的內容仍然和百年老店微軟相關,只不過主角換成WTL了。

不了解WTL的同學可以先找度娘溫習一下。度娘在懷,今生何求。郎君啊,你是不是悶得慌,如果你悶得慌給我十娘講,十娘我為你解憂傷。哦,對不起,笨笨剛才走神了,把度娘當成杜十娘了。

哦,對了,要是女同學嘛,可以找谷哥切磋切磋喲。

要在WTL下使用CChart,當然首先需要安裝WTL。由於笨笨使用的是VC6,笨笨下載的是WTL8.0,並下載了WTL7.1用於輔助安裝,具體的方法還得找度娘。

如果同學們使用高版本VC,可以下載WTL8.5。

現在我們開始。

第一步,用VC建立一個基於ATL/WTLWizard向導的程序,名為Lesson16。在余下的向導步驟中選擇默認值,不做任何修改。

SouthEast

第二步,拷貝五個庫文件到Lesson16文件夾。

第三步,在VC中打開Lesson16View.h文件,在其頭部添加如下代碼。

#include "Chart.h"
#ifdef _DEBUG
#pragma comment(lib, "PlotDll_d.lib")
#else
#pragma comment(lib, "PlotDll.lib")
#endif
 


第四步,在Lesson16View.h文件裡面,為CLesson16View類添加一個CChartWnd類型的成員變量。

CChartWnd	m_ChartWnd;
第五步,找到Lesson16View.h中如下代碼。
BEGIN_MSG_MAP(CLesson16View)
	MESSAGE_HANDLER(WM_PAINT, OnPaint)
END_MSG_MAP()
修改成下面這樣。
BEGIN_MSG_MAP(CLesson16View)
	//MESSAGE_HANDLER(WM_PAINT, OnPaint)
	MESSAGE_HANDLER(WM_CREATE, OnCreate)
	MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
END_MSG_MAP()
這就是WTL的消息響應,呵呵。

第六步,找到Lesson16View.h中如下代碼,刪除掉或者屏蔽掉它。

LRESULT OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	CPaintDC dc(m_hWnd);

	//TODO: Add your drawing code here

	return 0;
}
第七步,在Lesson16View.h中加入如下代碼。
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	double *pX, *pY;
	int i;
	
	if(m_ChartWnd.Attach(m_hWnd, kTypeXY))
	{
		pX=new double[200];
		pY=new double[200];
		for(i=0; i<200; i++)
		{
			pX[i]=(i-100.0)/100.0;
			pY[i]=pX[i]*pX[i];
		}
		m_ChartWnd.GetChart()->AddCurve(pX, pY, 200);
		delete []pY;
		delete []pX;
		m_ChartWnd.GetChart()->SetTitle(_TEXT("在WTL框架中測試CChart"));
		
	}
	return 0;
}
LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
	m_ChartWnd.Detach();
	return 0;
}
完成了!編譯並運行程序,效果如圖。

SouthEast

在WTL中編程總的感覺和用Win32Application向導差不多,同學們覺得呢?

上面笨笨采用的是CChartWnd類編程,同學們可以試著改用CChart類完成。

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