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