常見需求
在 MFC 對話框或視圖中顯示儀表盤、曲線圖、柱狀圖等圖形化界面。
主流解決方案
- 開源/免費庫:
- ChartCtrl (CChartCtrl): CodeProject 經典 MFC 圖表控件,支持多種圖型、縮放、工具提示,源碼可控。
- NPlot / OxyPlot (WPF 為主,但可宿主): 需配合
CWinFormsControl 或 ElementHost 宿主 .NET 控件。
- 商業庫:
- BCGSoft Control Bar / Chart: 微軟 Office 風格組件庫,圖表功能強大,收費。
- Codejock Xtreme ToolkitPro: 含 Chart 控件,UI 美觀,收費。
- 自繪:
- 重寫
OnPaint,使用 GDI/GDI+ 繪製坐標軸、數據點、針形儀表。靈活但開發量大,適合簡單固定樣式。
快速集成步驟(以 ChartCtrl 為例)
- 下載源碼(搜索「MFC ChartCtrl CodeProject」或 CSDN 下載鏈接)。
- 將
ChartCtrl.h/.cpp 等文件加入項目。
- 在對話框編輯器放置「Custom Control」,類名設置為
CChartCtrl。
- 在對話框類中添加變量
CChartCtrl m_chart;(Control 類型)。
OnInitDialog 中初始化:
m_chart.AddSerie(new CChartLineSerie());
m_chart.GetAxis(CChartCtrl::BottomAxis)->SetAutomatic(true);
// 添加數據點
m_chart.GetSerie(0)->AddPoint(1, 2.5);
資源鏈接(需自行搜索最新)
- CodeProject: "MFC Chart Control" by Cedric Moonen
- GitHub: "MFC-Chart-Control" 多個移植版本
- CSDN 下載: 搜索 "MFC 儀表盤 控件" 或 "ChartCtrl"
選型建議
- 需求簡單、不想引入依賴 → **自繪 GDI+**。
- 需專業圖表、交互(縮放、導出) → **ChartCtrl** 免費開源首選。
- 企業級產品、預算充足 → **BCGSoft / Codejock** 省時省力。