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

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

?? pie.cpp

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

#include "stdafx.h"
#include "Gr.h"
#include "Pie.h"

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

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

CPie::CPie()
{
	CutPie = FALSE;
	WithText = FALSE;
}

CPie::~CPie()
{

}
void CPie::DrawPie(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	int nWidth=30;
	if(CutPie == FALSE)
	{
		DrawNormalPie(pDC,LeftTopx+25,LeftTopy+50,RightBottomx-nWidth-25,RightBottomy-50);
	}
	else
	{
		DrawCutPie(pDC,LeftTopx+25,LeftTopy+50,RightBottomx-nWidth-25,RightBottomy-50);
	}
	DrawLegend(pDC,RightBottomx-nWidth-5,LeftTopy+50,nWidth,CBaseGr::BOTTOM);
	DrawTitle(pDC,LeftTopx+25,LeftTopy+50,RightBottomx-nWidth-25,RightBottomy-50,CBaseGr::TOP);
}
void CPie::DrawPieText(CDC* pDC,double sub,double sum,int Startx,int Starty,Align Mode,COLORREF FontColor)
{
	CFont m_font;
	m_font.CreateFont(
		  -12,                      // nHeight
		  0,                      // nWidth
		   0,                      // nEscapement
		   0,                      // nOrientation
			FW_NORMAL,             // nWeight
			FALSE,                 // bItalic
			FALSE,                 // bUnderline
		   FALSE,                      // cStrikeOut
		OEM_CHARSET,              // nCharSet
		OUT_DEFAULT_PRECIS,        // nOutPrecision
		CLIP_DEFAULT_PRECIS,       // nClipPrecision
		DEFAULT_QUALITY,           // nQuality
		DEFAULT_PITCH | FF_DONTCARE,  // nPitchAndFamily
		_T("宋體")); 
	CFont *pOldFont = pDC->SelectObject(&m_font);

	pDC->SetTextColor(FontColor);
//	DrawText(pDC->GetSafeHdc(),Value,-1,&rcString,DT_RIGHT | DT_SINGLELINE);
	CString Value = _T("");
	if(sum!=0.0)
	{
		Value.Format(_T("%2d%%"),(int)(sub/sum*100+0.5));
	}
	switch(Mode)
	{
	case LEFT:
		pDC->ExtTextOut(Startx+2,Starty,ETO_OPAQUE,NULL,Value,NULL);
		break;
	case RIGHT:
		pDC->ExtTextOut(Startx-15,Starty,ETO_OPAQUE,NULL,Value,NULL);
		break;
	case TOP:
		pDC->ExtTextOut(Startx-7,Starty-15,ETO_OPAQUE,NULL,Value,NULL);
		break;
	case BOTTOM:
		pDC->ExtTextOut(Startx-7,Starty+15,ETO_OPAQUE,NULL,Value,NULL);
		break;
	}
	pDC->SelectObject(pOldFont);
}
void CPie::DrawNormalPie(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	int i=0;
	double ValueSum=0.0;
	double ValueSumb=0.0;
	double AngleS=0.0;
	double AngleE=0.0;
	for(i=0;i<m_Legend.GetSize();i++)
	{
		ValueSum+=m_Legend.GetAt(i).Value;
	}
	if(ValueSum!=0.0)
	{
		for(i=0;i<m_Legend.GetSize();i++)
		{
			AngleS = 2*ValueSumb/ValueSum*PI;//360*ValueSumb/ValueSum*PI/180;
			ValueSumb+=m_Legend.GetAt(i).Value;
			AngleE =2*ValueSumb/ValueSum*PI;
			int Startx;
			int Starty;
			if((RightBottomx-LeftTopx) > (RightBottomy-LeftTopy))
			{
				DrawArc(pDC,LeftTopx+(RightBottomx-LeftTopx)/2,LeftTopy+(RightBottomy-LeftTopy)/2,(RightBottomy-LeftTopy)/2,AngleS,AngleE,m_Legend.GetAt(i).Graph.LineSize,m_Legend.GetAt(i).Graph.LineColor,m_Legend.GetAt(i).Graph.FillColor);
				Startx = (int)(LeftTopx+(RightBottomx-LeftTopx)/2+(RightBottomy-LeftTopy)/2*cos(AngleS+(AngleE-AngleS)/2));
				Starty = (int)(LeftTopy+(RightBottomy-LeftTopy)/2+(RightBottomy-LeftTopy)/2*sin(AngleS+(AngleE-AngleS)/2));
			}
			else
			{
				DrawArc(pDC,LeftTopx+(RightBottomx-LeftTopx)/2,LeftTopy+(RightBottomy-LeftTopy)/2,(RightBottomx-LeftTopx)/2,AngleS,AngleE,m_Legend.GetAt(i).Graph.LineSize,m_Legend.GetAt(i).Graph.LineColor,m_Legend.GetAt(i).Graph.FillColor);
				Startx = (int)(LeftTopx+(RightBottomx-LeftTopx)/2+(RightBottomx-LeftTopx)/2*cos(AngleS+(AngleE-AngleS)/2));
				Starty = (int)(LeftTopy+(RightBottomy-LeftTopy)/2+(RightBottomx-LeftTopx)/2*sin(AngleS+(AngleE-AngleS)/2));
			}
			if(WithText)
			{
				if(((AngleE+AngleS)/2 < 90*PI/180 &&
					(AngleE+AngleS)/2 >=0) ||
					((AngleE+AngleS)/2 > 270*PI/180 &&
					(AngleE+AngleS)/2 <=360*PI/180)) 
				DrawPieText(pDC,m_Legend.GetAt(i).Value,ValueSum,Startx,Starty,LEFT);
				else if((AngleE+AngleS)/2 > 90*PI/180 &&
					(AngleE+AngleS)/2 < 270*PI/190) 
				DrawPieText(pDC,m_Legend.GetAt(i).Value,ValueSum,Startx,Starty,RIGHT);
				else if((AngleS+AngleE)/2 == 90*PI/180)
				DrawPieText(pDC,m_Legend.GetAt(i).Value,ValueSum,Startx,Starty,TOP);
				else if((AngleS+AngleE)/2 == 270*PI/180)
				DrawPieText(pDC,m_Legend.GetAt(i).Value,ValueSum,Startx,Starty,BOTTOM);
			}
		}
	}
}
void CPie::DrawCutPie(CDC* pDC,int LeftTopx,int LeftTopy,int RightBottomx,int RightBottomy)
{
	int i=0;
	double ValueSum=0.0;
	double ValueSumb=0.0;
	double AngleS=0.0;
	double AngleE=0.0;
	for(i=0;i<m_Legend.GetSize();i++)
	{
		ValueSum+=m_Legend.GetAt(i).Value;
	}
	if(ValueSum!=0.0)
	{
		for(i=0;i<m_Legend.GetSize();i++)
		{
			AngleS = 2*ValueSumb/ValueSum*PI;//360*ValueSumb/ValueSum*PI/180;
			ValueSumb+=m_Legend.GetAt(i).Value;
			AngleE =2*ValueSumb/ValueSum*PI;
			if((RightBottomx-LeftTopx) > (RightBottomy-LeftTopy))
			{
				DrawCutArc(pDC,LeftTopx+(RightBottomx-LeftTopx)/2,LeftTopy+(RightBottomy-LeftTopy)/2,(RightBottomy-LeftTopy)/2,AngleS,AngleE,m_Legend.GetAt(i).Graph.LineSize,m_Legend.GetAt(i).Graph.LineColor,m_Legend.GetAt(i).Graph.FillColor);
			}
			else
			{
				DrawCutArc(pDC,LeftTopx+(RightBottomx-LeftTopx)/2,LeftTopy+(RightBottomy-LeftTopy)/2,(RightBottomx-LeftTopx)/2,AngleS,AngleE,m_Legend.GetAt(i).Graph.LineSize,m_Legend.GetAt(i).Graph.LineColor,m_Legend.GetAt(i).Graph.FillColor);
			}
		}
	}
}
void CPie::DrawCutArc(CDC* pDC,int pCoCx,int pCoCy,int nRadius,double AngleS,double AngleE,int LineSize,COLORREF LineColor,COLORREF FillColor)
{
	int CutRadius = 5;
	pCoCx -= CutRadius;
	pCoCy -= CutRadius;
	POINT PointS,PointE,PointBase;
	PointBase.x = pCoCx - nRadius;
	PointBase.y = pCoCy;
	if(AngleS > AngleE)
	{
		double conv = AngleS;
		AngleS = AngleE;
		AngleE = conv;
	}
	int Detax = (int)(CutRadius*cos(AngleS+(AngleE-AngleS)/2));
	int Detay = (int)(CutRadius*sin(AngleS+(AngleE-AngleS)/2));
	PointS.x = pCoCx + (int)(nRadius*cos(AngleS)) + Detax;
	PointS.y = pCoCy + (int)(nRadius*sin(AngleS)) + Detay;
	PointE.x = pCoCx + (int)(nRadius*cos(AngleE)) + Detax;
	PointE.y = pCoCy + (int)(nRadius*sin(AngleE)) + Detay;

	double AngleTmp = AngleS;
	double DetaAngle = PI/180;
	int nCount = (int)((AngleE - AngleS)/DetaAngle);
	CPoint *ArcP = new CPoint[nCount+2];
	(*(ArcP+0)).x = pCoCx + Detax;
	(*(ArcP+0)).y = pCoCy + Detay;
	int i = 1;
	while(AngleTmp <= AngleE)
	{
		(*(ArcP+i)).x = pCoCx + (int)(nRadius*cos(AngleTmp)) + Detax;
		(*(ArcP+i)).y = pCoCy + (int)(nRadius*sin(AngleTmp)) + Detay;
		AngleTmp += DetaAngle;
		i++;
	}
	(*(ArcP+nCount)) = PointE;
	(*(ArcP+nCount+1)) = (*(ArcP+0));
	DrawPolygon(pDC,ArcP,nCount+2,LineSize,LineColor,FillColor);
	delete []ArcP;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品久久久蜜桃| 欧美一级理论性理论a| 粉嫩aⅴ一区二区三区四区五区| 蜜桃久久久久久| 精品一区二区精品| 成人午夜免费电影| 成人动漫一区二区| 91豆麻精品91久久久久久| 欧美日韩黄色影视| 久久久久久久综合| 亚洲最新视频在线观看| 日韩av一区二区在线影视| 九色|91porny| 色综合久久天天综合网| 欧美日本视频在线| 久久精品人人做人人爽人人| 亚洲制服欧美中文字幕中文字幕| 蜜臀av一区二区三区| 成人免费视频免费观看| 日本高清无吗v一区| 精品国产免费人成电影在线观看四季| 亚洲四区在线观看| 老司机精品视频在线| 成人黄色电影在线| 欧美日韩中字一区| 久久亚洲综合色一区二区三区| 国产精品久久久久影院色老大| 樱花影视一区二区| 国产成人在线看| 在线综合亚洲欧美在线视频| 亚洲精品欧美激情| 国产精品中文字幕欧美| 欧美另类高清zo欧美| 中文字幕成人在线观看| 亚洲成人av在线电影| 国产成人综合在线| 欧美猛男男办公室激情| 中文字幕一区二区三区不卡| 男女激情视频一区| 91麻豆视频网站| 精品国产精品网麻豆系列| 亚洲欧美日韩国产一区二区三区| 国产一区二区三区香蕉| 欧美在线一区二区三区| 亚洲欧美在线高清| 国产精品影视在线| 精品久久一区二区| 亚洲不卡在线观看| av亚洲精华国产精华精华| 精品动漫一区二区三区在线观看| 亚洲亚洲精品在线观看| 99久久综合国产精品| 精品处破学生在线二十三| 午夜电影一区二区| 色999日韩国产欧美一区二区| 国产婷婷色一区二区三区四区| 美女视频网站黄色亚洲| 欧美影院一区二区三区| 中文字幕不卡在线播放| 97久久精品人人做人人爽| 亚洲天天做日日做天天谢日日欢 | 天天色天天爱天天射综合| 色婷婷综合久久久中文字幕| 亚洲激情校园春色| 欧美日韩一区二区欧美激情| 日日夜夜一区二区| 精品日产卡一卡二卡麻豆| 国产一区二区三区黄视频 | 91精品国产综合久久精品图片 | 视频在线观看一区| 自拍偷拍亚洲欧美日韩| 美女久久久精品| 99国产欧美另类久久久精品| 日韩女优电影在线观看| 亚洲免费电影在线| 国产精品正在播放| 欧美日韩二区三区| 欧美国产精品一区二区| 免费的国产精品| 色婷婷综合久久久中文一区二区 | 日韩欧美一区电影| 中文一区在线播放| 26uuu成人网一区二区三区| 18欧美乱大交hd1984| 亚洲成a天堂v人片| 成人综合在线视频| 91女厕偷拍女厕偷拍高清| 欧美岛国在线观看| 麻豆91免费观看| 精品久久人人做人人爱| 日韩精品欧美精品| 欧美撒尿777hd撒尿| 国产拍揄自揄精品视频麻豆| 婷婷开心激情综合| 精品视频1区2区3区| 亚洲人一二三区| 在线免费观看日本欧美| 亚洲乱码一区二区三区在线观看| 日韩欧美中文一区二区| 日本成人在线看| 日韩精品一区二区三区四区 | 国产在线视视频有精品| 欧美色爱综合网| 一区二区三区在线观看欧美| 99久久久精品| 国产精品美女久久久久av爽李琼| 成人在线综合网| 亚洲欧美日韩综合aⅴ视频| 91激情五月电影| 无吗不卡中文字幕| 日韩午夜在线观看视频| 日本不卡123| 色综合久久久久综合体| 午夜电影一区二区三区| 欧美伦理视频网站| 亚洲在线视频免费观看| 色婷婷一区二区| 久久久精品免费观看| 日日夜夜免费精品| 久久只精品国产| 国产在线精品一区二区不卡了| 欧美成人一区二区三区在线观看| 天堂一区二区在线免费观看| 欧美欧美午夜aⅴ在线观看| 亚洲国产日韩在线一区模特| 欧美日韩精品系列| 天涯成人国产亚洲精品一区av| 欧美电影在哪看比较好| 久久精品久久精品| www国产精品av| 国产一区二区免费在线| 国产精品毛片久久久久久久| 国产一区在线精品| 一区二区成人在线视频| 欧美视频精品在线观看| 日韩电影一二三区| 日韩三级在线免费观看| 91麻豆成人久久精品二区三区| 欧美性猛片xxxx免费看久爱| 黄色资源网久久资源365| 精品精品国产高清a毛片牛牛 | 成人精品视频网站| 亚洲欧洲精品一区二区三区| 国产精品18久久久久| 久久综合九色综合97婷婷| 国产成人免费视频网站高清观看视频| 国产精品福利一区二区| 欧美日韩精品欧美日韩精品一| 18欧美亚洲精品| 91麻豆精品国产自产在线观看一区| 亚洲国产美国国产综合一区二区| 91在线国内视频| 亚洲国产成人91porn| 国产亚洲女人久久久久毛片| 亚洲自拍偷拍网站| 99亚偷拍自图区亚洲| 国产三级三级三级精品8ⅰ区| 9i在线看片成人免费| 免费成人av在线| 国产精品国产自产拍高清av王其| 免费人成精品欧美精品 | 欧美精品视频www在线观看| 国产a精品视频| 一区二区三区美女| 国产欧美一区二区三区在线看蜜臀 | 亚洲成人av中文| 国产精品久久久久久久久免费相片 | 欧美日韩高清一区二区不卡| 亚洲精品成人精品456| 风间由美一区二区av101| 欧美成人性战久久| 日韩—二三区免费观看av| 久久先锋影音av鲁色资源网| 丝袜亚洲另类丝袜在线| 久久久99精品免费观看| 337p亚洲精品色噜噜| 日韩伦理av电影| 欧美日精品一区视频| 成人激情综合网站| 亚洲一区在线视频| 久久久蜜桃精品| 欧美日韩成人一区二区| 免费观看在线色综合| 亚洲国产精品久久久男人的天堂| 欧美在线一区二区| 国内精品国产成人国产三级粉色| 久久久久久久综合狠狠综合| 99精品久久99久久久久| 精品在线播放免费| 亚洲国产日韩a在线播放性色| 日韩久久久久久| 99热这里都是精品| 亚洲mv大片欧洲mv大片精品| 99亚偷拍自图区亚洲| 男人的j进女人的j一区| 一区二区免费看| 精品日韩欧美在线| 欧美日本韩国一区二区三区视频| 国产老妇另类xxxxx| 国产精品福利一区|