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

CChart 圖表教學第十八課:對話框嵌入繪圖與套娃式視窗

     編輯:關於C語言

對話框嵌入核心技巧

需 CChart 2.5.1.4+ 版本。關鍵點:**附加到主對話框而非 Picture 控制項**,因對話框會攔截子控制項訊息導致異常。

實作步驟

  1. MFC 對話框專案 Lesson18
  2. 資源編輯器:刪除靜態文字,放置 Picture 控制項 IDC_CANVAS
  3. Lesson18Dlg.h 引入庫,宣告 CChartWnd m_ChartWnd;
  4. OnInitDialog 計算 Picture 相對主視窗偏移:
CWnd *pWnd = GetDlgItem(IDC_CANVAS);
CRect rtWCtrl, rtWParent;
pWnd->GetWindowRect(&rtWCtrl);
GetWindowRect(&rtWParent);
int capH = GetSystemMetrics(SM_CYCAPTION);
int dx = GetSystemMetrics(SM_CXBORDER);
int offsetx = rtWCtrl.left - rtWParent.left - dx;
int offsety = rtWCtrl.top - rtWParent.top - capH;
CRect rtCtrlClient; pWnd->GetClientRect(&rtCtrlClient);
OffsetRect(&rtCtrlClient, offsetx, offsety);
m_ChartWnd.Attach(m_hWnd, kTypeXY, rtCtrlClient);
  1. 繪製正弦曲線並設定標題
  2. OnDestroy 呼叫 Detach()

執行效果與套娃現象

對話框內嵌圖表:

對話框嵌入

互動彈出屬性對話框(CChart 視窗的子視窗),如俄羅斯套娃:

套娃效果

偏移計算是核心,掌握後對話框嵌入不再困難。

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