-
大小: 74KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-01-27
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
自己寫的一個(gè)曲線繪制類,使用簡(jiǎn)單,功能強(qiáng)大。為了演示方便,所有功能都在右鍵菜單中實(shí)現(xiàn)。寫的時(shí)間比較短,測(cè)試也不是太完善。不過(guò)我自己已經(jīng)把它用于工業(yè)控制軟件中了。歡迎大家下載使用,可任意修改,有好的想法一定告訴我。
主要實(shí)現(xiàn)的功能:
曲線繪制,動(dòng)態(tài)曲線,靜態(tài)曲線,多條曲線,縮放,移動(dòng),顏色,繪圖方向,曲線數(shù)據(jù)讀取,數(shù)據(jù)存盤,曲線存為Bmp
等。

代碼片段和文件信息
//?Chart.cpp?:?implementation?file
//
#include?“stdafx.h“
#include?“TestMyChart.h“
#include?“Chart.h“
#ifdef?_DEBUG
#define?new?DEBUG_NEW
#undef?THIS_FILE
static?char?THIS_FILE[]?=?__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//?CChart
//##ModelId=48A145880178
CChart::CChart()
{
???m_bDrawReverseX?=?false;??//繪圖方向
???m_bDrawReverseY?=?false;??//繪圖方向
???m_bShowMenum?=?true;
???m_bAllCurveSamebase?=?false;
???m_bHideUnselectCurve?=?false;
???m_bShowDataFlowMouse?=?false;??//取數(shù)據(jù)時(shí)是否讓數(shù)據(jù)跟隨鼠標(biāo)顯示
???m_crBackColor??=?RGB(0045);
???m_crGridColor?=?RGB(120120120);
???m_crframeColor?=?RGB(255255255);
???m_brushBack.CreateSolidBrush(m_crBackColor)?;
???m_brushGrid.CreateSolidBrush(m_crGridColor)?;
???m_CurveMap.RemoveAll();
???m_ptMaxPos.InitPoint(0.00.0);
???m_ptMinPos.InitPoint(0.00.0);
???m_ptZoomOffset.InitPoint(0.00.0);
???m_ptMoveOffset.InitPoint(0.00.0);
???m_rectClient.SetRectEmpty();
???m_rectPlot.SetRectEmpty();
???m_ptMargin.x?=?10;
???m_ptMargin.y?=?10;
???m_dVerticalFactor?=?1.0;
???m_dHorizontalFactor?=?1.0;
???m_iControlMode?=?CURVE_MOVE;
???m_bLeftButtonDown?=?false;
???m_iVerticalControlMode?=?false;?//默認(rèn)是水平控制模式(指管輪操作模式的移動(dòng)即縮放功能)
???m_recMouseSelect.SetRectEmpty();
???m_pCurSelCurveObj?=?NULL;
}
//##ModelId=48A145880186
CChart::~CChart()
{
POSITION??pos=m_CurveMap.GetStartPosition();
????CString?strKey;
????Cobject*????pOb;
????while(pos)
{
????????m_CurveMap.GetNextAssoc(posstrKeypOb);
????????delete??pOb;
pOb?=?NULL;
????}
}
BEGIN_MESSAGE_MAP(CChart?CWnd)
//{{AFX_MSG_MAP(CChart)
ON_WM_SIZE()
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
ON_WM_MOUSEWHEEL()
ON_WM_RBUTTONDOWN()
ON_WM_CONTEXTMENU()
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI_RANGE(999010010OnUpdateMenuState)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//?CChart?message?handlers
//##ModelId=48ACE0A6036B
BOOL?CChart::Create(DWORD?dwstyle?const?RECT?&rect?CWnd?*pParentWnd?UINT?nID)
{
??BOOL?result?;
??static?CString?className?=?AfxRegisterWndClass(CS_HREDRAW?|?CS_VREDRAW)?;
??result?=?CWnd::CreateEx(WS_THICKframe?
??????????????????????????className?NULL?dwstyle?
??????????????????????????rect.left?rect.toprect.right-rect.left?rect.bottom-rect.top
??????????????????????????pParentWnd->GetSafeHwnd()?(HMENU)nID)?;
??if?(result?!=?0)
??{
??this->SetMargin();
??InvalidateCtrl();
??this->DrawGrid();
??}
??return?result?;
}
//##ModelId=48A14589009E
BOOL?CChart::InvalidateCtrl()???//
{
CClientDC?dc(this)?;??
????//創(chuàng)建繪制網(wǎng)格的內(nèi)存繪圖對(duì)象
m_dcGrid.DeleteDC();
????m_dcGrid.CreateCompatibleDC(&dc)?;
m_bitmapBackground.Deleteobject();
????m_bitmapBackground.CreateCompatibleBitmap(&dc?m_nClientWidth?m_nClientHeight)?;
????m_pbitmapOldBackground?=?m_dcGrid.Selectobject(&m_b
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????48435??2008-09-23?21:24??TestMyChart\Chart.cpp
?????文件???????7790??2008-09-26?01:52??TestMyChart\Chart.h
????.......?????26350??2008-09-22?17:09??TestMyChart\CurveObj.cpp
?????文件???????8186??2008-09-26?01:52??TestMyChart\CurveObj.h
?????文件????????159??2008-09-23?08:54??TestMyChart\mssccprj.scc
????.......??????3669??2008-09-18?12:22??TestMyChart\ReadMe.txt
????.......??????1078??2008-09-18?12:22??TestMyChart\res\TestMyChart.ico
????.......???????403??2008-09-18?12:22??TestMyChart\res\TestMyChart.rc2
????....SH.???????119??2008-09-23?08:54??TestMyChart\res\vssver2.scc
?????文件???????1842??2008-09-23?20:38??TestMyChart\resource.h
????.......???????213??2008-09-18?12:22??TestMyChart\StdAfx.cpp
????.......???????999??2008-09-18?12:22??TestMyChart\StdAfx.h
?????文件??????37264??2008-09-23?20:38??TestMyChart\TestMyChart.aps
?????文件???????1592??2008-09-26?01:55??TestMyChart\TestMyChart.clw
????.......??????2178??2008-09-18?12:22??TestMyChart\TestMyChart.cpp
????.......??????4597??2008-09-18?12:22??TestMyChart\TestMyChart.dsp
?????文件????????648??2008-09-19?20:22??TestMyChart\TestMyChart.dsw
????.......??????1459??2008-09-18?12:22??TestMyChart\TestMyChart.h
?????文件?????132096??2008-09-26?01:56??TestMyChart\TestMyChart.ncb
?????文件??????51712??2008-09-26?01:56??TestMyChart\TestMyChart.opt
?????文件????????258??2008-09-26?01:56??TestMyChart\TestMyChart.plg
?????文件???????6123??2008-09-23?20:38??TestMyChart\TestMyChart.rc
?????文件???????7140??2008-09-26?01:53??TestMyChart\TestMyChartDlg.cpp
?????文件???????1898??2008-09-23?20:38??TestMyChart\TestMyChartDlg.h
????.......??????2696??2008-09-18?12:22??TestMyChart\threadtrace.cpp
????.......??????1566??2008-09-18?12:22??TestMyChart\threadtrace.h
????....SH.???????518??2008-09-23?17:19??TestMyChart\vssver2.scc
?????目錄??????????0??2008-09-18?12:22??TestMyChart\res
?????目錄??????????0??2008-09-26?01:56??TestMyChart
-----------?---------??----------?-----??----
............此處省略2個(gè)文件信息
- 上一篇:池塘夜降彩色雨
- 下一篇:信號(hào)FFT變換及繪圖
評(píng)論
共有 條評(píng)論