天天看點

CChart曲線庫移值

本說明講解的是CChart開源代碼的移值 也就是源代碼有的,因為用起來DLL非常的不友善。

1.下載下傳CChart源代碼 http://www.cchart.net/

下載下傳下來進行解壓操作解壓之後檔案如下

CChart曲線庫移值

2.建立CChart靜态連結庫 打開SourceAPI檔案夾 輕按兩下Plot.sln工程打 開 在此用的是VS2013  點選重新編譯 3.删除不必要的工程

CChart曲線庫移值

移除 

 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裡面會提示重定義錯誤) 此時類名稱就變成了

CChart曲線庫移值

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檔案建立成 功

CChart曲線庫移值

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);

效果如果圖 可以自動改變大小

CChart曲線庫移值
CChart曲線庫移值

附上工程源碼: http://pan.baidu.com/s/1gdm69Yb