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

CChart 入門教程第 3 課:零代碼實現專業級圖表交互功能

     編輯:關於C語言

核心驚喜

無需編寫任何交互代碼,CChart 內建完整交互系統:高亮、選擇、鍵盤導航、屬性編輯、右鍵菜單。只需一行修改即可啟用雙擊響應。

啟用雙擊響應(必做)

在 MyRegisterClass 中修改窗口類樣式:

wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; // 新增 CS_DBLCLKS

Win32 默認不發送 WM_LBUTTONDBLCLK,加上此標誌後雙擊才會產生消息。

交互對象:五大圖元

圖元高亮選擇編輯說明
圖表標題✅✅✅ (Enter/雙擊)修改標題文字、字體、顏色
繪圖區✅❌✅調整背景、網格、邊距
曲線/數據序列✅✅✅線型、顏色、寬度、標記、圖例名
座標軸✅✅✅範圍、刻度、標題、網格線
圖例✅✅ (點擊項選擇對應曲線)✅顯示/隱藏、位置、字體

交互操作指南

3.1 滑鼠懸停高亮

滑鼠移過任意圖元 → 邊框變色/加粗(曲線高亮採用獨特算法:像素級命中測試)。

標題高亮

3.2 左鍵點擊選擇

點擊標題/座標軸/曲線/圖例項 → 選中態(曲線變粗變色)。

曲線選中

3.3 空格鍵循環切換選擇

按 Space → 依序:標題 → 各座標軸 → 各曲線 → 回到標題。多軸/多曲線按添加順序排序。

3.4 Enter / 雙擊 彈出屬性對話框

選中狀態下按 Enter 或雙擊 → 模態對話框,修改屬性即時生效。

曲線屬性對話框 修改後效果

3.5 右鍵上下文菜單

客戶區右鍵 → 功能豐富:

  • Show/Hide Legend(顯示/隱藏圖例)
  • Grid Settings(網格設置)
  • Copy Image / Save As...(複製/保存圖片)
  • Print / Print Preview(列印/預覽)
  • Zoom / Pan 模式切換
右鍵菜單

代碼修改總結(僅 1 行)

// MyRegisterClass 內
wcex.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; // ← 只加這個

原理揭秘

  • CChartWnd 內部維護 std::vector,WM_MOUSEMOVE 遍歷命中測試設置 hoveredElement。
  • WM_LBUTTONDOWN 設置 selectedElement,WM_KEYDOWN 處理 Space/Enter。
  • 屬性對話框由資源模板 IDD_PROPPAGE_* 動態構建,屬於庫內部實現。

下課預告

第 4 課:高級圖表類型——等高線圖,展示科學計算視覺化能力。

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