本說明講解的是CChart開源代碼的移值 也就是源代碼有的,因為用起來DLL非常的不友善。
1.下載下傳CChart源代碼 http://www.cchart.net/
下載下傳下來進行解壓操作解壓之後檔案如下
2.建立CChart靜态連結庫 打開SourceAPI檔案夾 輕按兩下Plot.sln工程打 開 在此用的是VS2013 點選重新編譯 3.删除不必要的工程
移除
TestAPI工程之後編譯 1>c1xx : fatal error C1083: 無法打開源檔案: “Plot\Chart.cpp”: No such file or directory 3>c:\users\administrator\desktop\cchartfull\sourceapi\plot\basics\defhandlers\defhandlers.cpp(45): error C4430: 缺少類型說明符 - 假定為 int。注意: C++ 不支援預設 int Chart.pp的檔案的路徑出錯,删除原有工程的檔案之後再重新添加即可. 在CChartFull\SourceAPI\Plot\Wraper 路徑下面重新添加即可 第個錯誤更改 const nMaxFile = 1024; 為const int nMaxFile = 1024; 再次編譯 ========== 全部重新生成: 成功 1 個,失敗 0 個,跳過 0 個 === ======= 4.:更改類名字 在CChartFull\SourceAPI\Plot\Extended\GridPlot\grid_lib路徑下面找到 memdc.h memdc.c 檔案并且打開 替換 CMemDC 字元串 為GCMemDC(因為在VS2013裡面會提示重定義錯誤) 此時類名稱就變成了
5.再次編譯 出現錯誤 1>c:\users\administrator\desktop\cchartfull\sourceapi\plot\extended\gridplot\grid_lib\grid.cpp(2824): error C2065: “CMemDC”: 未聲明的标 識符 找打這個檔案,同時也把CMenDC 改成GCMenDC再次編譯 ========== 全部重新生成: 成功 1 個,失敗 0 個,跳過 0 個 ========== 6. 打開此路CChartFull\SourceAPI\Plot\Basics 找到Global.h檔案并且打開添加如下
再次編譯 ========== 全部重新生成: 成功 1 個,失敗 0 個,跳過 0 個 ==========到此為止.ib檔案建立成 功
7.建立立一個MFC 工程或者win32 工程 為了友善我們放置工程的路徑為 CChartFull檔案夾下面 在 loggerView.h 類裡面添加如下 #include "../../SourceAPI/Plot/PlotInterface.h" #ifdef _DEBUG #pragma comment(lib,"..\\..\\SourceAPI\\Debug\\Plotd.lib") #else #pragma comment(lib,"..\\..\\SourceAPI\\Release\\Plot.lib") #endif using namespace std; public: CChartWnd m_ChartWnd; 在loggerView.cpp 裡面添加Create函數并且在裡面添加代碼如下 m_ChartWnd.Attach(m_hWnd, kTypeSplit ); m_ChartWnd.GetChart()->ResizePlots(2, 2, 2);
//添資料 double pX[360], pY[360]; for ( int i = 0; i<360; i++) { pX[i] = 2.0*3.1415926536*i / 360.0; pY[i] = pX[i] * pX[i]; } m_ChartWnd.GetChart()->AddCurve(pX, pY, 360); m_ChartWnd.GetChart()->AddCurve(pX, pY, 360, 1); m_ChartWnd.GetChart()->AddCurve(pX, pY, 360, 2); //改屬性 m_ChartWnd.GetChart()->SetBkgndColor( RGB (200, 200, 200), 0);
效果如果圖 可以自動改變大小
附上工程源碼: http://pan.baidu.com/s/1gdm69Yb