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

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

?? bar.cpp

?? WinCE開發技巧與實例的配套源碼
?? CPP
字號:
// Bar.cpp: implementation of the CBar class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Gr.h"
#include "Bar.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CBar::CBar()
{
	CoordinateDirection = VER;
	XFieldMode = ON;
	LegendMode = BOTTOM;
	TitleMode = TOP;
	GraphMode = FALSE;
	WithDash = FALSE;
	Column = FALSE;

	yDeta = 5;
	yCoorDeta = 0;
}

CBar::~CBar()
{

}
void CBar::DrawCoordinate(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,BOOL WithDash)
{
	if(GraphMode == FALSE)//Flat
		Draw2DCoordinate(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,WithDash);
	else
		Draw3DCoordinate(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,WithDash);
}
void CBar::Draw2DCoordinate(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,BOOL WithDash)
{
	int nDeta = 5;
	int nCount = (YMax - YMin)/nDeta ;
	int nCoorDeta = (RightBottomy - LeftTopy)/nCount;
	yCoorDeta = nCoorDeta;
	while(nCoorDeta < 10 )
	{
		yDeta = nDeta;
		nDeta += 5;
		nCount = (YMax - YMin)/nDeta ;
		nCoorDeta = (RightBottomy - LeftTopy)/nCount;
		yCoorDeta = nCoorDeta;
	}
	DrawLine(pDC,LeftTopx,LeftTopy,LeftTopx,RightBottomy);
	DrawLine(pDC,LeftTopx,RightBottomy,RightBottomx,RightBottomy);
	if(WithDash)
	{
		DrawLine(pDC,RightBottomx,RightBottomy,RightBottomx,LeftTopy);
		DrawLine(pDC,RightBottomx,LeftTopy,LeftTopx,LeftTopy);
	}
	CString CoordinateValue;
	CoordinateValue.Format(_T("%3d"),YMin);
	DrawYCoordinateValue(pDC,LeftTopx-18,RightBottomy-5,CoordinateValue);
	for(int i=1;i<=nCount;i++)
	{
		if(WithDash)
			DrawDashLine(pDC,LeftTopx,RightBottomy-nCoorDeta*i,RightBottomx,RightBottomy-nCoorDeta*i);
		DrawLine(pDC,LeftTopx,RightBottomy-nCoorDeta*i,LeftTopx+5,RightBottomy-nCoorDeta*i);
		CoordinateValue.Format(_T("%3d"),YMin+nDeta*i);
		DrawYCoordinateValue(pDC,LeftTopx-18,RightBottomy-nCoorDeta*i-5,CoordinateValue);
	}

	DrawXName(pDC,RightBottomx-12*XName.GetLength(),RightBottomy+15,XName);
	DrawYName(pDC,LeftTopx-35,LeftTopy+12*YName.GetLength(),YName);
	DrawTitle(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,TitleMode);
}
void CBar::Draw3DCoordinate(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy,BOOL WithDash)
{
	int nXDeta = (RightBottomx-LeftTopx)/(m_Legend.GetSize()+1);
	if(Column == FALSE)
	{
		int nDeta = 5;
		int nCount = (YMax - YMin)/nDeta ;
		int nCoorDeta = (RightBottomy - LeftTopy)/nCount;
		yCoorDeta = nCoorDeta;
		while(nCoorDeta < 10 )
		{
			nDeta += 5;
			yDeta = nDeta;
			nCount = (YMax - YMin)/nDeta ;
			nCoorDeta = (RightBottomy - LeftTopy)/nCount;
			yCoorDeta = nCoorDeta;
		}
		DrawLine(pDC,LeftTopx,LeftTopy,LeftTopx,RightBottomy);
		DrawLine(pDC,LeftTopx,RightBottomy,RightBottomx,RightBottomy);
		DrawLine(pDC,LeftTopx,LeftTopy,LeftTopx+nXDeta/2,LeftTopy-nXDeta/2);
		DrawLine(pDC,LeftTopx,RightBottomy,LeftTopx+nXDeta/2,RightBottomy-nXDeta/2);
		DrawLine(pDC,RightBottomx,RightBottomy,RightBottomx+nXDeta/2,RightBottomy-nXDeta/2);
		DrawLine(pDC,LeftTopx+nXDeta/2,LeftTopy-nXDeta/2,LeftTopx+nXDeta/2,RightBottomy-nXDeta/2);
		DrawLine(pDC,RightBottomx+nXDeta/2,LeftTopy-nXDeta/2,RightBottomx+nXDeta/2,RightBottomy-nXDeta/2);
		DrawLine(pDC,LeftTopx+nXDeta/2,LeftTopy-nXDeta/2,RightBottomx+nXDeta/2,LeftTopy-nXDeta/2);
		DrawLine(pDC,LeftTopx+nXDeta/2,RightBottomy-nXDeta/2,RightBottomx+nXDeta/2,RightBottomy-nXDeta/2);

		CString CoordinateValue;
		CoordinateValue.Format(_T("%3d"),YMin);
		DrawYCoordinateValue(pDC,LeftTopx-18,RightBottomy-5,CoordinateValue);
		for(int i=1;i<=nCount;i++)
		{
			if(WithDash)
			{
				DrawDashLine(pDC,LeftTopx,RightBottomy-nCoorDeta*i,LeftTopx+nXDeta/2,RightBottomy-nCoorDeta*i-nXDeta/2);
				DrawDashLine(pDC,LeftTopx+nXDeta/2,RightBottomy-nCoorDeta*i-nXDeta/2,RightBottomx+nXDeta/2,RightBottomy-nCoorDeta*i-nXDeta/2);
			}
			CoordinateValue.Format(_T("%3d"),YMin+nDeta*i);
			DrawYCoordinateValue(pDC,LeftTopx-18,RightBottomy-nCoorDeta*i-5,CoordinateValue);
		}
		
		DrawXName(pDC,RightBottomx-12*XName.GetLength(),RightBottomy+15,XName);
		DrawYName(pDC,LeftTopx-35,LeftTopy+12*YName.GetLength(),YName);
		DrawTitle(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,TitleMode);
	}
	else
	{
		Draw2DCoordinate(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,WithDash);
	}
}
void CBar::DrawBar(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	int nWidth = 30;
	DrawCoordinate(pDC,LeftTopx+40,LeftTopy+37,RightBottomx-4-nWidth,RightBottomy-54,WithDash);
	DrawContent(pDC,LeftTopx+40,LeftTopy+37,RightBottomx-4-nWidth,RightBottomy-54);
	DrawLegend(pDC,RightBottomx-2-nWidth,LeftTopy+37,nWidth,LegendMode);
}
void CBar::DrawContent(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	if(GraphMode == FALSE)
		Draw2DBar(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy);
	else
		Draw3DBar(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy);
}
void CBar::Draw2DBarContent(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	int nXDeta = (RightBottomx-LeftTopx)/(m_Legend.GetSize()+1);
	for(int i=1;i<=m_Legend.GetSize();i++)
	{
		if(m_Legend.GetAt(i-1).Value > YMax)
		{
			Legend LegendTmp = m_Legend.GetAt(i-1); 
			LegendTmp.Value = YMax;
			m_Legend.SetAt(i-1,LegendTmp);
		}
		if(m_Legend.GetAt(i-1).Value < YMin) 
		{
			Legend LegendTmp = m_Legend.GetAt(i-1); 
			LegendTmp.Value = YMin;
			m_Legend.SetAt(i-1,LegendTmp);
		}
		if(WithDash)
			DrawDashLine(pDC,LeftTopx+nXDeta*i,RightBottomy,LeftTopx+nXDeta*i,LeftTopy);
		int Height = ((int)(m_Legend.GetAt(i-1).Value+0.5)-YMin)*yCoorDeta/yDeta;
	//	Height = (Height<(yCoorDeta*(YMax-YMin)/yDeta))?Height:(yCoorDeta*(YMax-YMin)/yDeta);
		if(GraphMode == FALSE)
			DrawRectangle(pDC,LeftTopx+nXDeta*i-nXDeta/2+1,RightBottomy-Height,LeftTopx+nXDeta*i+nXDeta/2-1,RightBottomy,m_Legend.GetAt(i-1).Graph.LineSize,m_Legend.GetAt(i-1).Graph.LineColor,m_Legend.GetAt(i-1).Graph.FillColor);
		else
		{
			DrawColumn(pDC,LeftTopx+nXDeta*i-nXDeta/2+1,RightBottomy-nXDeta/2+2-Height,LeftTopx+nXDeta*i+nXDeta/2-1,RightBottomy+nXDeta/2-2-Height,Height,m_Legend.GetAt(i-1).Graph.LineSize,m_Legend.GetAt(i-1).Graph.LineColor,m_Legend.GetAt(i-1).Graph.FillColor);
		//	DrawColumn(pDC,80,80,80+40,80+30,Height,m_Legend.GetAt(i-1).Graph.LineSize,m_Legend.GetAt(i-1).Graph.LineColor,m_Legend.GetAt(i-1).Graph.FillColor);
		}
		switch(XFieldMode)
		{
		case LEFT:
		case RIGHT:
		case NONE:
			break;
		case TOP:
		//	if(nXDeta < 12*m_Legend.GetAt(i-1).Name.GetLength())
		//		DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-Height-1,m_Legend.GetAt(i-1).Name,HOR);
		//	else
				DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-Height-15,m_Legend.GetAt(i-1).Name);
			break;
		case BOTTOM:
			DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy+15,m_Legend.GetAt(i-1).Name);
			break;
		case ON:
			//if(nXDeta < 12*m_Legend.GetAt(i-1).Name.GetLength())
			DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-5,m_Legend.GetAt(i-1).Name,HOR);
			//else
			//	DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-5,m_Legend.GetAt(i-1).Name);
			break;
		}
	}
}
void CBar::Draw3DBarContent(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	if(Column == FALSE)
	{
		int nXDeta = (RightBottomx-LeftTopx)/(m_Legend.GetSize()+1);
		for(int i=1;i<=m_Legend.GetSize();i++)
		{
			if(m_Legend.GetAt(i-1).Value > YMax)
			{
				Legend LegendTmp = m_Legend.GetAt(i-1); 
				LegendTmp.Value = YMax;
				m_Legend.SetAt(i-1,LegendTmp);
			}
			if(m_Legend.GetAt(i-1).Value < YMin) 
			{
				Legend LegendTmp = m_Legend.GetAt(i-1); 
				LegendTmp.Value = YMin;
				m_Legend.SetAt(i-1,LegendTmp);
			}

			int Height = ((int)(m_Legend.GetAt(i-1).Value+0.5)-YMin)*yCoorDeta/yDeta;
			//	Height = (Height<(yCoorDeta*(YMax-YMin)/yDeta))?Height:(yCoorDeta*(YMax-YMin)/yDeta);
			DrawCub(pDC,LeftTopx+nXDeta*i-nXDeta/2+1,RightBottomy-Height,LeftTopx+nXDeta*i+nXDeta/2-1,RightBottomy-Height,Height,m_Legend.GetAt(i-1).Graph.LineSize,m_Legend.GetAt(i-1).Graph.LineColor,m_Legend.GetAt(i-1).Graph.FillColor);
			
			switch(XFieldMode)
			{
			case LEFT:
			case RIGHT:
			case NONE:
				break;
			case TOP:
				//	if(nXDeta < 12*m_Legend.GetAt(i-1).Name.GetLength())
				//		DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-Height-1,m_Legend.GetAt(i-1).Name,HOR);
				//	else
				DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-Height-15,m_Legend.GetAt(i-1).Name);
				break;
			case BOTTOM:
				DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy+15,m_Legend.GetAt(i-1).Name);
				break;
			case ON:
				//if(nXDeta < 12*m_Legend.GetAt(i-1).Name.GetLength())
				DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-5,m_Legend.GetAt(i-1).Name,HOR);
				//else
				//	DrawXCoordinateValue(pDC,LeftTopx+nXDeta*i-nXDeta/2+2,RightBottomy-5,m_Legend.GetAt(i-1).Name);
				break;
			}
		}
	}
	else
	{
		Draw2DBarContent(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy);
	}
}
void CBar::Draw2DBar(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	Draw2DCoordinate(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,WithDash);
	Draw2DBarContent(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy);
}
void CBar::Draw3DBar(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	Draw3DCoordinate(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy,WithDash);
	Draw3DBarContent(pDC,LeftTopx,LeftTopy,RightBottomx,RightBottomy);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色94色欧美sute亚洲线路一ni| 亚洲国产精品成人综合| 久久久久国产精品人| 一区二区三区精品在线观看| 精品一区二区三区视频| 日本高清视频一区二区| 国产欧美精品一区aⅴ影院 | 久久精品99国产精品日本| 99r国产精品| 国产无一区二区| 青青草国产精品97视觉盛宴| 日本韩国精品在线| 国产精品久久久久久久第一福利| 久久成人av少妇免费| 欧美日韩国产精品成人| 亚洲视频 欧洲视频| 成人在线视频首页| 久久久国际精品| 国产毛片精品国产一区二区三区| 91麻豆精品国产综合久久久久久| 亚洲资源在线观看| 91在线观看下载| 国产精品免费av| 国产精品小仙女| 久久精品在这里| 国产精品一线二线三线| 精品国产亚洲在线| 久久99国产精品免费网站| 91精品国产品国语在线不卡| 亚洲成国产人片在线观看| 欧美三级视频在线| 无码av免费一区二区三区试看| 色综合久久久久综合| 亚洲男同1069视频| 欧日韩精品视频| 五月天网站亚洲| 91精品国产福利在线观看 | 最新高清无码专区| 99re在线视频这里只有精品| 日韩理论电影院| 91成人在线免费观看| 亚洲1区2区3区视频| 欧美日韩国产综合草草| 日韩电影一二三区| 精品成人一区二区| 国产传媒久久文化传媒| 亚洲日穴在线视频| 欧美中文字幕亚洲一区二区va在线 | 国产成人av福利| 中文字幕在线不卡一区| 一本色道综合亚洲| 日本欧美韩国一区三区| 欧美r级电影在线观看| 国产麻豆精品95视频| 日韩毛片视频在线看| 欧美亚洲综合在线| 美腿丝袜亚洲综合| 国产精品麻豆欧美日韩ww| 在线亚洲高清视频| 国内精品伊人久久久久影院对白| 中文在线免费一区三区高中清不卡| 91原创在线视频| 美女视频网站久久| 一区精品在线播放| 91精品国产一区二区三区蜜臀| 国产精品18久久久久久久久| 亚洲男人天堂av| 日韩欧美电影在线| 91视频xxxx| 韩国av一区二区三区四区| 日韩毛片一二三区| 欧美xxx久久| 日本韩国精品在线| 国产精品996| 日韩一区精品视频| 日韩理论片网站| 久久精品欧美一区二区三区麻豆| 色94色欧美sute亚洲线路一ni| 精品一区二区三区在线观看 | 国产精品久久久久婷婷| 欧美欧美欧美欧美| 色综合色综合色综合| 国产精品自拍一区| 秋霞电影网一区二区| 亚洲黄色片在线观看| 国产清纯白嫩初高生在线观看91 | 久草这里只有精品视频| 亚洲精品日韩专区silk| 久久蜜臀中文字幕| 91精品欧美一区二区三区综合在| 成人黄色av网站在线| 久久精品噜噜噜成人av农村| 亚洲乱码国产乱码精品精小说 | proumb性欧美在线观看| 六月婷婷色综合| 午夜精品久久久久久久久久| 亚洲精选在线视频| 国产免费成人在线视频| 精品国产麻豆免费人成网站| 91麻豆精品国产91久久久更新时间 | 91精品在线一区二区| 欧美最猛性xxxxx直播| 色中色一区二区| zzijzzij亚洲日本少妇熟睡| 国产河南妇女毛片精品久久久| 捆绑紧缚一区二区三区视频| 偷拍亚洲欧洲综合| 亚洲成人三级小说| 亚洲一区二区三区国产| 亚洲欧美日韩一区| 亚洲色图第一区| 亚洲丝袜自拍清纯另类| 亚洲日本在线天堂| 一区二区欧美视频| 亚洲一区在线观看免费观看电影高清| 综合婷婷亚洲小说| 亚洲美女淫视频| 亚洲第一成人在线| 日本最新不卡在线| 蜜桃视频免费观看一区| 国产一区二区不卡老阿姨| 激情成人综合网| 国产成人在线看| 成人精品视频一区| 在线欧美日韩精品| 欧美日韩免费一区二区三区视频| 欧美人狂配大交3d怪物一区| 91精品国产综合久久国产大片| 亚洲精品在线免费观看视频| 2020国产精品| 最好看的中文字幕久久| 亚洲bt欧美bt精品| 精品影视av免费| 成人av电影在线网| 欧美三级日韩三级国产三级| 日韩一区二区精品| 国产目拍亚洲精品99久久精品| 亚洲视频免费在线观看| 日韩激情一二三区| 国产精品一二三区| 91久久奴性调教| 欧美久久久影院| 久久久久久久久伊人| 一二三四社区欧美黄| 久久不见久久见免费视频1 | 国产麻豆精品在线| 日本精品视频一区二区| 日韩欧美二区三区| 一区精品在线播放| 六月丁香综合在线视频| 91在线国产福利| 精品国产一区二区三区不卡| 中文字幕佐山爱一区二区免费| 视频一区国产视频| av中文一区二区三区| 欧美一区二区精美| 亚洲三级免费观看| 国产美女视频一区| 欧美日韩成人一区二区| 国产精品视频一区二区三区不卡 | 亚洲男人天堂一区| 狠狠色综合播放一区二区| 91免费版在线看| 精品三级av在线| 午夜a成v人精品| 91麻豆高清视频| 国产丝袜在线精品| 免费国产亚洲视频| 欧美日免费三级在线| 中文字幕一区三区| 精品一区二区免费| 欧美日韩另类国产亚洲欧美一级| 国产欧美日韩另类视频免费观看| 日韩经典中文字幕一区| 色中色一区二区| 日韩一区在线看| 国产成人免费视频网站| 欧美成人官网二区| 婷婷久久综合九色综合绿巨人| 成人听书哪个软件好| 久久综合九色综合欧美就去吻 | 成人性生交大片| 久久人人超碰精品| 久久精品久久久精品美女| 欧美日韩国产片| 一区二区三区四区在线免费观看| 国产成人高清视频| 久久伊99综合婷婷久久伊| 蜜臀av国产精品久久久久| 欧美三级视频在线观看| 亚洲综合在线免费观看| 91农村精品一区二区在线| 亚洲欧美影音先锋| 一本久久综合亚洲鲁鲁五月天| 国产精品热久久久久夜色精品三区| 国产一区二区三区免费观看| 精品欧美久久久| 国产一区亚洲一区| 精品国产伦一区二区三区观看方式| 久久精工是国产品牌吗|