亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2dgraph.cpp

?? Windows CE 繪圖通信編程
?? CPP
字號:
// 2DGraph.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "2DGraph.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// C2DGraph

C2DGraph::C2DGraph()
{
    //初始化控件屬性
	m_crBackColor = RGB(0,0,0);
	m_crGridColor = RGB(0,255,255);
	m_crLineColor = RGB(255,0,255);
	m_crTextColor = RGB(255,0,255);
	
	m_strXCaption = _T("X軸");
	m_strYCaption = _T("Y軸");
	m_dXMaxValue = 10;
	m_dXMinValue = 0;
	m_dYMaxValue = 10;
	m_dYMinValue = 0; 
}

C2DGraph::~C2DGraph()
{
}


BEGIN_MESSAGE_MAP(C2DGraph, CWnd)
//{{AFX_MSG_MAP(C2DGraph)
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// C2DGraph message handlers

BOOL C2DGraph::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
{
	BOOL result ;
	//注冊窗體類
	static CString className = AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW) ;
	//創建窗體類
	result = CWnd::CreateEx(WS_EX_CLIENTEDGE | WS_EX_STATICEDGE, 
		className, NULL, dwStyle, 
		rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top,
		pParentWnd->GetSafeHwnd(), (HMENU)nID) ;
	//更新窗體顯示
	if (result != 0)
		InvalidateCtrl() ;	
	return TRUE;
}

void C2DGraph::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CRect rectClient;
	GetClientRect(rectClient) ;
	
	CDC memDC ;
	CBitmap memBitmap ;
	CBitmap* oldBitmap ; 
	
	memDC.CreateCompatibleDC(&dc) ;
	memBitmap.CreateCompatibleBitmap(&dc, rectClient.Width(), rectClient.Height()) ;
	oldBitmap = (CBitmap *)memDC.SelectObject(&memBitmap) ;
	
	//將m_dcGrid和m_dcLine繪制到控件上
	if (memDC.GetSafeHdc() != NULL)
	{
		memDC.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), 
			         &m_dcGrid, 0, 0, SRCCOPY) ;
		memDC.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), 
			         &m_dcLine, 0, 0, SRCPAINT) ;
		
		dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), 
			&memDC, 0, 0, SRCCOPY) ;
	}
	
	memDC.SelectObject(oldBitmap) ;		
	
	//刪除內存位圖GDI對象
	memBitmap.DeleteObject();
	//刪除內存繪圖環境
	memDC.DeleteDC();
}

//將用戶添加的點值轉換成屏幕坐標
CPoint C2DGraph::GpToSp(CPoint& point)
{
	CPoint rPoint;
   	CRect rectClient;
	CRect rectLine;
	
	GetClientRect(rectClient) ;
	rectLine.left = rectClient.left + 20;
	rectLine.right = rectClient.right - 10;
	rectLine.top = rectClient.top + 10;
	rectLine.bottom = rectClient.bottom - 20;
	rPoint.x = rectLine.left + (point.x / (m_dXMaxValue - m_dXMinValue))*rectLine.Width();
	rPoint.y = rectLine.top + (1 - point.y / (m_dYMaxValue - m_dYMinValue))*rectLine.Height(); 
	return rPoint;
}

//用于刷新控件顯示
void C2DGraph::InvalidateCtrl()
{
    CPen *oldPen;
	CPen solidPen(PS_SOLID,0,m_crGridColor);
    CFont xFont,yFont,*oldFont;
	CBrush brushBack;
	brushBack.CreateSolidBrush(m_crBackColor) ;
	
	CRect rectClient;
	GetClientRect(rectClient);
	
	CClientDC dc(this);
	
	//創建表格設備環境以及創建相應緩沖區
	if (m_dcGrid.GetSafeHdc() == NULL)
	{
		m_dcGrid.CreateCompatibleDC(&dc);
		m_bitmapGrid.CreateCompatibleBitmap(&dc,rectClient.Width(),rectClient.Height());
		m_dcGrid.SelectObject(&m_bitmapGrid);
	}
	
	//設置背景顏色
	m_dcGrid.SetBkColor(m_crBackColor);
	m_dcGrid.FillRect(rectClient,&brushBack);
	
	//畫邊框
	oldPen = m_dcGrid.SelectObject(&solidPen);
	m_dcGrid.MoveTo(rectClient.left + 20,rectClient.top + 10);
	m_dcGrid.LineTo(rectClient.right - 10,rectClient.top + 10);
	m_dcGrid.LineTo (rectClient.right - 10,rectClient.bottom - 20) ;
	m_dcGrid.LineTo (rectClient.left + 20 , rectClient.bottom - 20) ;
	m_dcGrid.LineTo (rectClient.left + 20 , rectClient.top  + 10) ;
	
	m_dcGrid.SelectObject(oldPen);
	
	//創建Y軸字體
	yFont.CreateFont (14, 0, 900, 0, 300,
		FALSE, FALSE, 0, ANSI_CHARSET,
		OUT_DEFAULT_PRECIS, 
		CLIP_DEFAULT_PRECIS,
		DEFAULT_QUALITY, 
		DEFAULT_PITCH|FF_SWISS, _T("宋體")) ;
	
	//創建X軸字體
	xFont.CreateFont (14, 0, 0, 0, 300,
		FALSE, FALSE, 0, ANSI_CHARSET,
		OUT_DEFAULT_PRECIS, 
		CLIP_DEFAULT_PRECIS,
		DEFAULT_QUALITY, 
		DEFAULT_PITCH|FF_SWISS, _T("宋體")) ;
	
	//畫Y坐標標題
	m_dcGrid.SetTextColor(m_crTextColor);
	oldFont = m_dcGrid.SelectObject(&yFont);
	m_dcGrid.ExtTextOut (rectClient.left + 2, 
		(rectClient.top + rectClient.bottom ) / 2 + 5, ETO_CLIPPED,NULL,m_strYCaption,wcslen(m_strYCaption),NULL) ;
	
	//畫Y坐標最大值
	CString strTmp;
	strTmp.Format(_T("%.2f"),m_dYMaxValue);
	m_dcGrid.ExtTextOut (rectClient.left+5  , 
		rectClient.top + 40 , ETO_CLIPPED,NULL
		,strTmp,strTmp.GetLength(),NULL) ;
	
	//畫Y坐標最小值
	strTmp.Format(_T("%.2f"),m_dYMinValue);
	m_dcGrid.ExtTextOut (rectClient.left+5 , 
		rectClient.bottom - 18 , ETO_CLIPPED,NULL
		,strTmp,strTmp.GetLength(),NULL) ;
	
	//畫X坐標標題
	oldFont = m_dcGrid.SelectObject(&xFont);
	m_dcGrid.ExtTextOut ((rectClient.left+ rectClient.right)/2 - 5, 
		rectClient.bottom - 18 , ETO_CLIPPED,NULL,m_strXCaption,wcslen(m_strXCaption) ,NULL) ;
	
	//畫X坐標最大值
	strTmp.Format(_T("%.2f"),m_dXMaxValue);
	m_dcGrid.ExtTextOut (rectClient.right - 40, 
		rectClient.bottom - 18 , ETO_CLIPPED,NULL
		,strTmp,strTmp.GetLength(),NULL) ;
	
	//畫X坐標最小值
	strTmp.Format(_T("%.2f"),m_dXMinValue);
	m_dcGrid.ExtTextOut (rectClient.left + 20, 
		rectClient.bottom - 18 , ETO_CLIPPED,NULL
		,strTmp,strTmp.GetLength(),NULL) ;
	
	
	m_dcGrid.SelectObject(oldFont);
	
	//創建畫線設備環境以及創建相應緩沖區
	if (m_dcLine.GetSafeHdc() == NULL)
	{
		m_dcLine.CreateCompatibleDC(&dc) ;
		m_bitmapLine.CreateCompatibleBitmap(&dc, rectClient.Width(), rectClient.Height()) ;
		m_dcLine.SelectObject(&m_bitmapLine) ;
	}
	
	m_dcLine.SetBkColor (m_crBackColor) ;
	m_dcLine.FillRect(rectClient, &brushBack) ;

	//刪除創建的GDI對象
	solidPen.DeleteObject();
	xFont.DeleteObject();
	yFont.DeleteObject();
	brushBack.DeleteObject();
}

//在曲線末尾添加一個點
void C2DGraph::AppendPoint(double dPointX, double dPointY)
{
	CPen *oldPen;
	CRect rectCleanUp;
	CPoint points[2];
	CPen penLine;
	penLine.CreatePen(PS_SOLID, 0, m_crLineColor) ;
	
    m_lstPoints.AddTail(CPoint(dPointX,dPointY));	
	oldPen = m_dcLine.SelectObject(&penLine) ;
	if (m_dcLine.GetSafeHdc() != NULL)
	{
		if (m_lstPoints.GetCount() == 0 )
		{
			
		}
		//如果是第1個點
		else if (m_lstPoints.GetCount() == 1) 
		{
			POSITION pos = m_lstPoints.GetHeadPosition();
			points[0] = m_lstPoints.GetAt(pos);
            points[0] = GpToSp(points[0]);
			m_dcLine.SetPixel(points[0],m_crLineColor);
		}
		//如果多于或等于2個點
		else
		{
			POSITION pos = m_lstPoints.GetTailPosition();
			points[0] = m_lstPoints.GetPrev(pos);
			points[1] = m_lstPoints.GetPrev(pos);
			points[0] = GpToSp(points[0]);
			points[1] = GpToSp(points[1]);
			
			m_dcLine.MoveTo (points[0].x, points[0].y) ;	
			m_dcLine.LineTo (points[1].x,points[1].y) ;
		}
	}
	m_dcLine.SelectObject(oldPen) ;
	//刪除畫筆GDI對象
	penLine.DeleteObject();
	//更新顯示
	Invalidate();
}

//刪除曲線第一點
void C2DGraph::DeleteFirstPoint()
{
	CPen *oldPen ;
	CPoint points[2];
	CPen deletePen(PS_SOLID,1,m_crBackColor);
	
	if (m_dcLine.GetSafeHdc() != NULL)
	{
		//如果曲線中只有一個點
		if (m_lstPoints.GetCount() == 1)
		{
			POSITION pos = m_lstPoints.GetHeadPosition();
			points[0] = m_lstPoints.GetNext(pos);
			points[0] = GpToSp(points[0]);
			
			m_dcLine.SetPixel(points[0],m_crBackColor);
			m_lstPoints.RemoveHead();
		}
		//如果曲線中含有大于或等于2個點
		else if (m_lstPoints.GetCount() >= 2)
		{
			POSITION pos = m_lstPoints.GetHeadPosition();
			points[0] = m_lstPoints.GetNext(pos);
			points[1] = m_lstPoints.GetNext(pos);
			points[0] = GpToSp(points[0]);
			points[1] = GpToSp(points[1]);
			
			oldPen = m_dcLine.SelectObject(&deletePen);
			m_dcLine.MoveTo (points[0].x, points[0].y) ;	
			m_dcLine.LineTo (points[1].x, points[1].y) ;
			m_dcLine.SelectObject(oldPen);
			m_lstPoints.RemoveHead();
		}
	}
	//刪除畫筆GDI對象
	deletePen.DeleteObject();
	//更新顯示
	Invalidate();		
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一级二级三级| 日韩激情av在线| 狠狠网亚洲精品| 精品久久国产字幕高潮| 国模娜娜一区二区三区| 国产无一区二区| 国产精品91一区二区| 国产精品麻豆久久久| 91日韩精品一区| 亚洲一区二区三区影院| 欧美一区二区视频网站| 久久精品久久精品| 国产亚洲欧洲一区高清在线观看| 成人av高清在线| 亚洲成人av免费| 欧美丰满少妇xxxxx高潮对白| 久久er99热精品一区二区| 久久精品亚洲国产奇米99| 99久久伊人精品| 日韩在线一区二区三区| 久久亚洲综合色| 色婷婷久久久久swag精品| 午夜欧美电影在线观看| 国产喷白浆一区二区三区| 91视频在线看| 在线观看日韩高清av| 日韩精品色哟哟| 国产精品私人影院| 欧美日韩欧美一区二区| 精品一区二区三区在线观看国产| 成人欧美一区二区三区小说| 欧美喷水一区二区| 成人激情小说网站| 日本欧美一区二区三区| 欧美精品一区二区三区高清aⅴ | 亚洲精品免费播放| 日韩三级电影网址| 色八戒一区二区三区| 国产伦理精品不卡| 亚洲午夜影视影院在线观看| 国产亚洲一区二区在线观看| 777精品伊人久久久久大香线蕉| 免费成人你懂的| 精品视频一区三区九区| 亚洲视频一区二区免费在线观看 | 亚洲国产日韩精品| 中文一区二区在线观看| 欧美福利视频一区| 色94色欧美sute亚洲线路一ni| 久草精品在线观看| 亚洲二区视频在线| 国产精品国产a级| 久久久综合视频| 欧美一区二区观看视频| 欧美日韩一级片在线观看| 99久久久国产精品免费蜜臀| 国产在线精品一区二区三区不卡 | 欧美一级欧美三级在线观看| 91亚洲精品乱码久久久久久蜜桃| 国产精品综合一区二区三区| 奇米影视在线99精品| 一区二区久久久| 日韩美女啊v在线免费观看| 精品国产一区二区在线观看| 69堂精品视频| 欧美成人bangbros| 国产一区二区日韩精品| 天天爽夜夜爽夜夜爽精品视频| 亚洲人成在线观看一区二区| 欧美激情一二三区| 久久久蜜臀国产一区二区| 日韩欧美中文字幕制服| 欧美午夜精品一区二区蜜桃| 色女孩综合影院| 精品国产一区久久| 日韩欧美综合一区| 日韩无一区二区| 91麻豆精品国产91久久久久| 欧美三级乱人伦电影| 色婷婷亚洲精品| 一本大道久久a久久精品综合| 91小视频免费看| 91偷拍与自偷拍精品| av成人老司机| 91免费小视频| 欧美亚一区二区| 欧美色偷偷大香| 成人精品一区二区三区中文字幕| 国产精品1区2区3区| 国产毛片精品国产一区二区三区| 国产精品亚洲一区二区三区在线| 国产一区欧美二区| 成人a级免费电影| 99国产欧美另类久久久精品| 色综合久久久久综合99| 欧美三级三级三级| 欧美成人伊人久久综合网| 久久综合色婷婷| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品国产三级国产专播品爱网| 国产精品久久久久久久久果冻传媒| 亚洲三级免费电影| 视频一区二区欧美| 精品午夜久久福利影院| 国产suv精品一区二区三区| 91麻豆免费在线观看| 欧美视频一区二区三区| 精品久久人人做人人爱| 亚洲国产精华液网站w| 亚洲狼人国产精品| 美国三级日本三级久久99| 国产99精品视频| 欧美伊人久久久久久午夜久久久久| 在线不卡中文字幕| 国产欧美一区二区精品婷婷| 亚洲一区在线视频观看| 精品一区二区三区在线观看国产 | 欧美一区二区三区免费视频| 欧美精品一区二区三区在线| 亚洲欧美二区三区| 男人的j进女人的j一区| 成人福利在线看| 欧美妇女性影城| 国产精品久久久久影视| 天天综合日日夜夜精品| 成人中文字幕电影| 91精品免费在线| 国产精品久久久久久久久免费相片| 午夜精品免费在线观看| 成人在线视频一区| 欧美一卡2卡三卡4卡5免费| 亚洲欧洲精品天堂一级| 久草在线在线精品观看| 欧美性受xxxx黑人xyx| 国产欧美日韩精品在线| 日本欧美一区二区在线观看| 91在线精品一区二区| 欧美大片拔萝卜| 亚洲综合色成人| 国产美女久久久久| 717成人午夜免费福利电影| 亚洲精品视频免费观看| 高清不卡一二三区| 精品精品国产高清a毛片牛牛| 亚洲香蕉伊在人在线观| 成人av在线看| 久久久久国产精品人| 欧美aaaaaa午夜精品| 精品日本一线二线三线不卡| 天天综合色天天综合| 色婷婷国产精品| 中文字幕一区二区三区在线不卡| 国产美女在线精品| 欧美不卡一区二区三区| 首页国产丝袜综合| 欧美日韩综合色| 一区二区三区在线免费播放| 不卡av在线网| 亚洲国产精品一区二区尤物区| 国产电影一区二区三区| 欧美日韩一区二区在线视频| 中文字幕一区二| 9i在线看片成人免费| 国产三级精品三级在线专区| 国内偷窥港台综合视频在线播放| 777亚洲妇女| 日韩福利电影在线观看| 欧美日韩国产一二三| 亚洲成人免费观看| 欧美无乱码久久久免费午夜一区| 亚洲激情欧美激情| 色88888久久久久久影院野外| 综合久久国产九一剧情麻豆| 91在线视频免费91| 一区二区三区在线高清| 欧美影院一区二区三区| 亚洲成人高清在线| 日韩区在线观看| 国产一区不卡精品| 国产精品色噜噜| 99国产麻豆精品| 亚洲男人的天堂在线观看| 色诱视频网站一区| 无码av免费一区二区三区试看| 337p亚洲精品色噜噜狠狠| 日韩精品电影一区亚洲| 日韩视频免费观看高清完整版| 久久激情五月激情| 久久亚洲一级片| 国产精品丝袜久久久久久app| 国产精品一二一区| 久久精品二区亚洲w码| 精品国产自在久精品国产| 丁香亚洲综合激情啪啪综合| 国产精品久久久久三级| 欧洲精品一区二区| 日日夜夜免费精品| 久久精品一区二区| 日本高清视频一区二区| 久久99久久99|