MFC绘图工具High-speed Charting Control(VS2019)
MFC繪圖工具High-speed Charting Control(VS2019)
- 前言
- 一、High-speed Charting Control
- 1.1 下載
- 1.2 添加到項目中
- 二、繪圖測試
- 2.1 添加控件
- 2.2 編寫程序
- 2.3 測試程序
- 三、困惑咨詢
- 總結
前言
由于本人項目需要用到繪制實時柱狀圖,在網上看主要的博客都是介紹TeeChart。無意間發現了一個更適合的工具:High-speed Charting Control,簡單做一下分享
提示:以下是本篇文章正文內容,下面案例可供參考
一、High-speed Charting Control
1.1 下載
在CSDN上有人分享過資源,直接可以查到。如果萌新沒有積分的話可以在底下留言,我通過云盤的方式分享
1.2 添加到項目中
首先將資源中的Chart_source復制到工程文件夾中(可能不同的資源里面名字不一樣,這個文件就是該工具分裝好的頭文件和源文件)
然后在工程中:項目-添加現有項-Chart_source文件夾全選添加
至此,已經完成了將資源添加進項目工程中
二、繪圖測試
2.1 添加控件
High-speed Charting Control是基于Custom Control控件繪制,添加該控件后需要修改屬性,主要有兩處
(1)樣式
??將默認的0x50010000修改為0x52010000
(2)類
??修改為ChartCtrl
2.2 編寫程序
(1)在項目頭文件(xxxDlg.h)中添加需要使用的庫
#include "ChartCtrl_source\ChartCtrl.h" //曲線基本設置頭文件 #include "ChartCtrl_source\ChartTitle.h" //曲線標題設置頭文件 #include "ChartCtrl_source\ChartBarSerie.h" //柱狀圖頭文件// MyChartDlg.h: 頭文件 //(2)在項目源文件(xxxDlg.cpp)中添加變量并綁定控件
??注意綁定控件要在對話框類下的DoDataExchange中,不然無法顯示
(3)初始化坐標軸以及標題
BOOL CMyChartDlg::OnInitDialog() {CDialogEx::OnInitDialog();// 將“關于...”菜單項添加到系統菜單中。// IDM_ABOUTBOX 必須在系統命令范圍內。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != nullptr){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 設置此對話框的圖標。 當應用程序主窗口不是對話框時,框架將自動// 執行此操作SetIcon(m_hIcon, TRUE); // 設置大圖標SetIcon(m_hIcon, FALSE); // 設置小圖標// TODO: 在此添加額外的初始化代碼// //初始化坐標軸CChartAxis* pAxis = NULL;pAxis = m_ChartCtrl.CreateStandardAxis(CChartCtrl::BottomAxis); //底部坐標軸//pAxis->SetAutomatic(true); //根據具體數值自動調節坐標軸坐標,如果要固定坐標軸需要將其參數修改為falsepAxis->SetAutomatic(false);pAxis->SetMinMax(0, 20); //固定x軸坐標為0-20pAxis = m_ChartCtrl.CreateStandardAxis(CChartCtrl::LeftAxis); //左邊坐標軸pAxis->SetAutomatic(false);pAxis->SetMinMax(0, 100); //固定y軸坐標為0-100//添加標題TChartString str1;str1 = _T("High-speed Charting畫圖Demo");m_ChartCtrl.GetTitle()->AddString(str1);//設置顏色m_ChartCtrl.GetTitle()->SetColor(RGB(255, 255, 255)); //標題字體白色m_ChartCtrl.GetLeftAxis()->SetTextColor(RGB(255, 255, 255)); //左坐標軸白色m_ChartCtrl.GetBottomAxis()->SetTextColor(RGB(255, 255, 255)); //底部坐標軸白色m_ChartCtrl.SetBorderColor(RGB(255, 255, 255)); //邊框顏色白色m_ChartCtrl.SetBackColor(RGB(85, 85, 85)); //背景顏色深灰色return TRUE; // 除非將焦點設置到控件,否則返回 TRUE }(4)繪制曲線
添加Button控件來啟動定時器,定時器到時會自動更新繪圖,參數給隨機數
其中添加定時器的方法為:類向導-消息-添加WM_TIMER
2.3 測試程序
(1)執行時會報錯
??這是因為VS2019做了優化,標準頭文件從stdafx.h變為了pch.h,將High-speed Charting Control中源文件的庫文件修改過來即可
(2)運行效果
三、困惑咨詢
該控件的簡單使用已經分享完畢了,現在有一個小困惑,懇請各位大佬能幫忙解答一下,每次Debug啟動項目的時候,會彈出一個報警
點擊忽略后,程序可以正常運行,不知道如何解決該問題
總結
本例只分享了柱狀圖的繪制,其他種類的圖都可以仿照繪制,有問題可以留言交流~
總結
以上是生活随笔為你收集整理的MFC绘图工具High-speed Charting Control(VS2019)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: High-speed Charting
- 下一篇: HighSpeedCharting简单的