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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bar.cpp

?? WinCE開發(fā)技巧與實(shí)例的配套源碼
?? CPP
字號(hào):
// Bar.cpp: implementation of the CBar class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.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);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99国产一区二区三精品乱码| 中文字幕高清一区| 欧美日韩一级二级三级| 91激情在线视频| 日本韩国欧美在线| 91福利视频在线| 欧洲生活片亚洲生活在线观看| 99久久精品久久久久久清纯| 成人免费视频视频| 成人黄色av电影| av电影天堂一区二区在线| 成人久久18免费网站麻豆| 成人av在线一区二区| 99视频精品免费视频| 99精品一区二区| 色婷婷综合久久久中文字幕| 欧美性videosxxxxx| 欧美日韩一卡二卡| 日韩色在线观看| 精品福利视频一区二区三区| 久久久亚洲高清| 综合久久一区二区三区| 一区二区三区在线观看网站| 午夜亚洲福利老司机| 日韩激情在线观看| 黄一区二区三区| 成人免费视频app| 91精彩视频在线| 日韩一级二级三级精品视频| 26uuu国产电影一区二区| 中文字幕精品—区二区四季| 亚洲综合色区另类av| 免费观看成人鲁鲁鲁鲁鲁视频| 国产乱一区二区| 99久久精品免费精品国产| 精品视频一区三区九区| 日韩欧美亚洲国产另类| 国产视频不卡一区| 亚洲影院免费观看| 久久99精品国产麻豆不卡| 成人免费高清视频| 欧美日韩一级大片网址| 久久久91精品国产一区二区三区| 亚洲乱码国产乱码精品精的特点| 三级亚洲高清视频| 国产成人高清视频| 欧美三片在线视频观看| 2020国产精品久久精品美国| 亚洲欧美日韩国产成人精品影院 | 国产精品拍天天在线| 综合久久综合久久| 琪琪久久久久日韩精品| www..com久久爱| 日韩三级精品电影久久久| 国产精品久久久久影院| 蜜臀av性久久久久蜜臀av麻豆| 99久久er热在这里只有精品66| 欧美一区二区视频网站| 亚洲视频一区二区免费在线观看| 美女视频黄 久久| 91视频在线观看| 久久先锋资源网| 日本亚洲一区二区| 91玉足脚交白嫩脚丫在线播放| 欧美成人猛片aaaaaaa| 亚洲精品久久久久久国产精华液| 国产精品一区专区| 91精品国产高清一区二区三区蜜臀 | 成人免费黄色在线| 欧美一区二区三区日韩视频| 亚洲欧美一区二区三区国产精品| 国产精品一区二区在线观看不卡| 欧美日韩高清不卡| 亚洲色图视频网| 国产成人亚洲综合a∨猫咪| 制服丝袜亚洲精品中文字幕| 亚洲免费观看高清完整| 成人午夜电影小说| 久久欧美一区二区| 日本系列欧美系列| 在线观看日韩一区| 亚洲人成亚洲人成在线观看图片| 夫妻av一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 日韩精品高清不卡| 日本道精品一区二区三区| 中文av一区二区| 国产精品影音先锋| 欧美成人精品3d动漫h| 香蕉av福利精品导航| 色噜噜狠狠一区二区三区果冻| 国产精品久久久久久久浪潮网站 | 精品国产区一区| 日本在线不卡视频一二三区| 欧美日韩亚洲国产综合| 亚洲久草在线视频| 色综合欧美在线视频区| 综合欧美亚洲日本| 99国产欧美久久久精品| 国产精品电影院| 成人激情文学综合网| 国产偷国产偷精品高清尤物| 国产白丝精品91爽爽久久| 久久久国际精品| 国产精品综合二区| 久久午夜国产精品| 国产激情视频一区二区三区欧美 | 欧美mv日韩mv| 国产一区日韩二区欧美三区| 久久久亚洲精品石原莉奈| 国产美女av一区二区三区| 欧美精品一区二区蜜臀亚洲| 国产一区二区三区免费看 | 一区二区三区精品视频| 在线亚洲欧美专区二区| 亚洲综合久久av| 欧美日本视频在线| 美女爽到高潮91| 久久久美女毛片| eeuss国产一区二区三区| 亚洲日本丝袜连裤袜办公室| 91精品福利在线| 午夜精品福利视频网站| 日韩午夜在线观看视频| 国产精品一区不卡| 国产精品午夜春色av| 91美女在线观看| 婷婷综合五月天| 日韩视频国产视频| 国产福利一区在线| 1区2区3区精品视频| 在线观看免费亚洲| 美日韩一级片在线观看| 国产亚洲精品超碰| 91免费看`日韩一区二区| 亚洲成av人**亚洲成av**| 精品久久久久久久久久久久包黑料| 国产精品一区二区在线播放| 亚洲精品亚洲人成人网在线播放| 欧美高清视频www夜色资源网| 极品少妇一区二区三区精品视频 | 成人一二三区视频| 亚洲黄色av一区| 欧美大度的电影原声| 成人av中文字幕| 日本美女视频一区二区| 亚洲国产精品精华液2区45| 日本韩国欧美在线| 国产综合色产在线精品| 国产精品九色蝌蚪自拍| 欧美一区二区三区性视频| www.亚洲激情.com| 婷婷丁香久久五月婷婷| 欧美激情中文字幕一区二区| 欧美日韩黄色影视| 国产精品一二三四区| 亚洲一二三专区| 国产亚洲短视频| 欧美精品 国产精品| av在线这里只有精品| 免费成人在线观看视频| ...av二区三区久久精品| 日韩欧美中文字幕精品| 色噜噜狠狠成人网p站| 国产伦精品一区二区三区视频青涩| 亚洲一区二区三区四区五区黄| 久久久久久久久蜜桃| 欧美精品色一区二区三区| 成人的网站免费观看| 精品一区二区三区视频| 午夜天堂影视香蕉久久| 亚洲欧洲日产国产综合网| 久久先锋影音av鲁色资源网| 91精品国产乱码久久蜜臀| 色综合久久66| 懂色av一区二区夜夜嗨| 久久精品999| 亚洲123区在线观看| 国产精品久久久久影视| 国产亚洲欧洲一区高清在线观看| 欧美二区乱c少妇| 在线视频中文字幕一区二区| 成人高清视频在线| 另类专区欧美蜜桃臀第一页| 日韩精品欧美成人高清一区二区| 亚洲欧美日韩综合aⅴ视频| 亚洲国产高清不卡| 久久久久久久综合色一本| 精品日韩一区二区三区免费视频| 欧美高清视频一二三区 | 亚洲第一激情av| 亚洲精品视频在线| 国产精品福利电影一区二区三区四区| 久久免费午夜影院| 欧美本精品男人aⅴ天堂| 欧美精品第1页| 欧美一区二区私人影院日本| 欧美日本在线视频| 欧美日韩国产精品自在自线| 欧美日韩一区成人|