首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

自製 MFC 曲線圖控件:支援多曲線、圖例互動、列印與匯出

     編輯:關於VC++

開發動機

專案需求須即時顯示資料曲線以觀察趨勢,常見方案為 MSChart,但因授權或客製化限制無法採用。決定以 Visual C++ 6.0 + MFC 自行開發曲線控件,歷經三天完成核心功能,現分享給同好參考。

功能特色

  • 多曲線同步顯示:支援同時繪製多組資料曲線(如三相電流 A/B/C 相)。
  • 圖例互動控制:左鍵點擊圖例顯示/隱藏對應曲線;右鍵點擊圖例彈出屬性對話框,可修改線寬、顏色等參數。
  • 影像匯出與列印:支援將曲線圖儲存為圖檔、直接列印輸出。
  • 動態座標縮放:視窗大小隨曲線資料範圍自動調整。
  • 資料提示視窗:提供 HideTips() 介面供外部呼叫(如 Alt+Tab 切換時手動隱藏)。

使用範例

// 新增三條曲線
COLORREF cr1 = 0x80dd00; // A 相 - 綠
COLORREF cr2 = 0x0080ff; // B 相 - 藍
COLORREF cr3 = 0xff8000; // C 相 - 橘

m_wndZgChart.AddChartCutline(_T("A相電流(A)"), cr1, 1, TRUE);
m_wndZgChart.AddChartCutline(_T("B相電流(A)"), cr2, 1);
m_wndZgChart.AddChartCutline(_T("C相電流(A)"), cr3, 1);

執行畫面示意

圖一:預設顯示三相電流曲線

圖二:點擊圖例隱藏 A/C 相,僅顯示 B 相

圖三:右鍵圖例修改線寬、顏色

圖四:B 相線寬設為 4

圖五:曲線匯出圖檔

圖六:曲線列印輸出

技術說明與限制

  1. 控件以 LIB 靜態庫 形式提供(含標頭檔與 .lib),因公司產品策略不公開完整 C++ 原始碼,請見諒。
  2. 若發現 Bug,歡迎來信回報:sonystone@163.com、sonystone@tom.com、zg@www.yh-pol.com。
  3. 同步開發中:介面換膚框架(支援對話框、MDI、SDI 架構),完成後將全數開源分享。

延伸展示:介面換膚效果預覽

對話框換膚效果

MDI 架構換膚效果

SDI 架構換膚效果

舊版介面風格參考

結語

網路上 MFC 繪圖控件資源稀少,期望此控件能拋磚引玉。有需求者可來信索取 LIB 檔與範例專案。

本文配套原始碼(LIB 與範例專案)可供下載。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved