日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

high-speed Charting Control使用介绍(新手向)(综合整合)(ChartCtrl)-2020.12.16

發布時間:2023/12/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 high-speed Charting Control使用介绍(新手向)(综合整合)(ChartCtrl)-2020.12.16 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要介紹常用的Charting Ctrl+MFC個人使用心得和部分方法技巧

1.本人使用vs2019編寫MFC,具體配置方法見博客鏈接
https://blog.csdn.net/qq_36076137/article/details/111032383
本人source文件地址
https://download.csdn.net/download/qq_36076137/13633027
2.圖表標題。最常見的一種方法是
m_m_chartctrl0.GetTitle()->AddString(_T(“標題”));
但是,如果詞條命令執行多次,會在標題下面再加上一次標題,所以建議不要多次使用或者加入循環
3.普通數字坐標軸
CChartAxis* pAxis = NULL;
pAxis = m_chartctrl0.CreateStandardAxis(CChartCtrl::LeftAxis);//y軸
pAxis = m_chartctrl0.CreateStandardAxis(CChartCtrl::BottomAxis);//x軸
創建標準坐標軸,但還沒加入坐標系和點。
4.時間坐標軸
時間坐標軸如果不賦值,是從默認日期開始計算,下面介紹一種以今天和一個月以前的今天為x軸的時間軸的創建方法,其他需求可在此基礎上更改。

CChartDateTimeAxis* pDateAxis = NULL;//創建一個時間軸COleDateTime datetime0, datetime1;//x軸起始坐標,datatime0為一個月前今天,datatime1為今天datetime1 = COleDateTime::GetCurrentTime();//COle時間//COle時間,ColeDateTimeSpan(day,hour,minute,second)表示做加減的時間差datetime0 = datetime1 - COleDateTimeSpan(30, 0, 0, 0);pDateAxis = m_chartctrl0.CreateDateTimeAxis(CChartCtrl::BottomAxis);//時間軸保存到x軸//x軸取值范圍pDateAxis->SetMinMax(CChartCtrl::DateToValue(datetime0), CChartCtrl::DateToValue(datetime1));pDateAxis->SetTickIncrement(false, CChartDateTimeAxis::tiDay, 1);//x軸坐標間隔設置為1天pDateAxis->SetTickLabelFormat(false, _T("%m.%d"));//設置坐標軸為中文,格式為月.天//未完待續

5.坐標軸標簽。主要顯示x軸y軸代表什么變量
m_chartctrl0.GetBottomAxis()->GetLabel()->SetText(_T(“x軸標簽”));
m_chartctrl0.GetLeftAxis()->GetLabel()->SetText(_T(“y軸標簽”));
6.畫線。一般通過添加離散點的方式畫圖,通常關閉刷新在加點。最簡單的一種方法如下。

//以上例子x軸為時間軸繼續編寫m_chartctrl0.EnableRefresh(false);//關閉刷新,準備加點double x[30];//x軸點坐標,30天for (int i = 0; i < 30; i++)//賦值,x的值為一個月前的今天到今天{x[i] = CChartCtrl::DateToValue(datetime0) + i * COleDateTimeSpan(1, 0, 0, 0);}double y[30]={0}};//以全為0為例子CChartLineSerie* plineserie1;//第一條曲線m_chartctrl0.RemoveAllSeries();//先清空已有的曲線plineserie1 = m_chartctrl0.CreateLineSerie();plineserie1->SetSeriesOrdering(poNoOrdering);//曲線設置為無序plineserie1->AddPoints(x, y, 30);//添加坐標點,30表示在x,y中取前30個點plineserie1->SetColor(RGB(0, 0, 255));//顏色設為藍色plineserie1->SetName(_T("曲線名"));//設置曲線名m_chartctrl0.GetLegend()->SetVisible(true);//設置曲線名可見,不加這一句不顯示曲線名m_chartctrl0.EnableRefresh(true); //開啟刷新

注意事項
1.建議畫曲線函數寫入OnInitDialog中或者用button控制。
2.很多情況下要在另一個窗口中顯示曲線,需要打開窗口就顯示曲線。給大家一個方法,在dlg2中,右鍵->類向導->虛函數->添加OnInitDialog函數,已解決dlg2中沒有OnInitDialog的問題。
3.任何標題曲線顏色都可以設置,一般會有SetColor函數,可以使用RGB來表示,例如
plineserie1->SetColor(RGB(0, 0, 255));//顏色設為藍色
4.曲線名只有在設置曲線名可見后才顯示。
m_chartctrl0.GetLegend()->SetVisible(true);
5.可以添加多條曲線,即xy一條曲線,xz一條曲線,需要設置兩條plineserie。

有問題可以留言或者私聊,看到就回復了。

總結

以上是生活随笔為你收集整理的high-speed Charting Control使用介绍(新手向)(综合整合)(ChartCtrl)-2020.12.16的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。