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

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

?? graph.h

?? Visual C++應用教程-源代碼 本書在復習C++基礎知識后
?? H
字號:
#include <math.h>

class CGraph : public CObject
{
public:
	CGraph::CGraph();
	CGraph::CGraph(CRect rcDraw);
	CGraph::CGraph(CRect rcDraw, int nMode);
	void SetDrawRect(CRect rcDraw);
	void SetDrawMode(int nMode);
	void AddData(unsigned int data);		// 添加數據
	void Draw(CDC *pDC, bool isDispData = FALSE);	
	// 繪制,當isDispData務TRUE,在直方圖的頂上顯示數字或餅圖中顯示百分比
private:
	CRect m_rectDraw;				// 用于繪制直方圖和餅圖的整個范圍
	int   m_nMode;					// 0表示直方圖,其它值表示餅圖
	CUIntArray  m_uDataArray;		// 用于存放各個分量的值
	LOGFONT m_lfData;

	void DrawBar(CDC *pDC, bool isDispData);
	void DrawPie(CDC *pDC);
	void InitGraph(CRect rcDraw, int nMode);
};

CGraph::CGraph()
{
	CRect rc(0, 0, 100, 100);
	InitGraph(rc, 0);
}
CGraph::CGraph(CRect rcDraw)
{
	InitGraph(rcDraw, 0);
}
CGraph::CGraph(CRect rcDraw, int nMode)
{
	InitGraph(rcDraw, nMode);
}
void CGraph::InitGraph(CRect rcDraw, int nMode)
{
	SetDrawRect(rcDraw);
	SetDrawMode(nMode);

	memset(&m_lfData, 0, sizeof(LOGFONT));	
	m_lfData.lfHeight = -13;
	m_lfData.lfCharSet = GB2312_CHARSET;
	strcpy((LPSTR)&(m_lfData.lfFaceName), "宋體");
}
void CGraph::SetDrawRect(CRect rcDraw)
{
	m_rectDraw = rcDraw;
}
void CGraph::SetDrawMode(int nMode)
{
	m_nMode = nMode;
}
void CGraph::AddData(unsigned int data)					// 添加數據
{
	m_uDataArray.Add(data);
}
void CGraph::Draw(CDC *pDC, bool isDispData)
{
	// 繪制背景區域
	pDC->FillSolidRect( m_rectDraw, RGB(255,255,255));
	pDC->Draw3dRect( m_rectDraw, RGB( 96, 96, 96 ), RGB( 255, 255, 255 ) );
	m_rectDraw.InflateRect( -10, -10 );

	if (m_nMode)
		DrawPie(pDC);
	else
		DrawBar(pDC, isDispData);
}

void CGraph::DrawBar(CDC *pDC, bool isDispData)
{
	// 計算最大的量
	UINT nData, nDataNum, nDataMax = 0;
	nDataNum = m_uDataArray.GetSize();
	if (nDataNum < 1) return;

	for (UINT i=0; i<nDataNum; i++) {
		nData = m_uDataArray.GetAt(i);
		if (nDataMax < nData)	nDataMax = nData;
	}
	double dbPerHeight = (double)(m_rectDraw.Height() - 20) / (double)nDataMax;
	int nPerWidth = m_rectDraw.Width() / nDataNum;

	UINT nHatch[] = {HS_BDIAGONAL, HS_FDIAGONAL, HS_CROSS, HS_DIAGCROSS, HS_HORIZONTAL, HS_VERTICAL};
	int nIndex = 0;
	CRect rcDraw = m_rectDraw;

	CFont		cf;	
	cf.CreateFontIndirect(&m_lfData); 
	CFont* oldfont = pDC->SelectObject(&cf);

	for (i=0; i<nDataNum; i++) 
	{
		nData = m_uDataArray.GetAt(i);

		CBrush brush(nHatch[nIndex], RGB(64,64,64));
		rcDraw.right = rcDraw.left + nPerWidth;
		rcDraw.top = rcDraw.bottom - (int)(nData*dbPerHeight);

		CBrush* oldBrush = pDC->SelectObject(&brush);
		pDC->Rectangle(rcDraw);
		pDC->SelectObject(oldBrush);

		if (isDispData) {
			CRect rcData = rcDraw;
			rcData.bottom = rcData.top;
			rcData.top -= 20;
			CString str;
			str.Format("%d", nData);
			pDC->DrawText(str, rcData, DT_VCENTER | DT_CENTER | DT_SINGLELINE );
		}

		nIndex++;
		if (nIndex >= 6) nIndex = 0;
		rcDraw.left = rcDraw.right;
	}

	pDC->SelectObject(oldfont);				// 恢復設備環境原來的屬性
}
void CGraph::DrawPie(CDC *pDC)
{
	// 計算最大的量
	UINT nData, nDataNum, nDataSum = 0;
	nDataNum = m_uDataArray.GetSize();
	if (nDataNum < 1) return;

	for (UINT i=0; i<nDataNum; i++) 
		nDataSum += m_uDataArray.GetAt(i);	// 計算和

	// 調整繪圖的范圍,使之成為一個正方形區域
	CRect rcDraw = m_rectDraw;

	rcDraw.right	-= 68;

	int nDelta = rcDraw.Width() - rcDraw.Height();
	if (nDelta > 0)
		rcDraw.DeflateRect(nDelta/2, 0);
	else
		rcDraw.DeflateRect(0, -nDelta/2);

	double dbPer = (double)(3.14159 * 2.0) / (double)nDataSum;	// 每度相當于多少數值

	UINT nColor[] = {RGB(0,0,0), RGB(64, 64, 64), RGB(128, 128, 128), RGB(160, 160, 160),
					RGB(192, 192, 192), RGB(224, 224, 224)};
	int nIndex = 0, x, y;
	CPoint pt1 = rcDraw.CenterPoint(), pt2;
	pt1.x = rcDraw.right;

	CFont cf;	
	cf.CreateFontIndirect(&m_lfData); 
	CFont* oldfont = pDC->SelectObject(&cf);

	double dbDegree = 0;

	CRect	rcHint( rcDraw.right + 20, 20, rcDraw.right + 40, 34 );
	CString	strData;

	for (i=0; i<nDataNum; i++) 
	{
		nData = m_uDataArray.GetAt(i);
		strData.Format( "%d", nData );

		dbDegree += (double)nData * dbPer;
		x = (int)((double)rcDraw.Width()/2.0 * cos(dbDegree));
		y = (int)((double)rcDraw.Width()/2.0 * sin(dbDegree));
		pt2 = rcDraw.CenterPoint() + CPoint(x,y);

		CBrush brush(nColor[nIndex]);
		CBrush* oldBrush = pDC->SelectObject(&brush);
		pDC->Pie(rcDraw, pt2, pt1);
		pDC->Rectangle( rcHint );
		pDC->TextOut( rcHint.right + 2, rcHint.top, strData );
		pDC->SelectObject(oldBrush);

		rcHint.OffsetRect( 0, 16 );
		nIndex++;
		if (nIndex >= 6) nIndex = 0;
		pt1 = pt2;
	}

	pDC->SelectObject(oldfont);				// 恢復設備環境原來的屬性
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩av| 久久免费视频一区| 99视频一区二区三区| 国产精品久久三区| 色婷婷av一区二区三区软件| 色综合一区二区| 精品国产一二三区| 国产专区欧美精品| 国产精品污网站| 91色在线porny| 日韩av一二三| 国产精品福利一区| 欧洲亚洲精品在线| 国内精品自线一区二区三区视频| 国产女同互慰高潮91漫画| 日韩国产欧美三级| 欧美日韩免费一区二区三区| 欧美国产精品一区二区| 黄色资源网久久资源365| 91女厕偷拍女厕偷拍高清| 樱花影视一区二区| 欧美一区二区美女| 粉嫩高潮美女一区二区三区| 亚洲第一主播视频| 国产精品毛片大码女人| 欧美一区二视频| 久久精品国产久精国产爱| 国产毛片一区二区| 中文无字幕一区二区三区| 欧美无人高清视频在线观看| 国产成人免费视频网站高清观看视频| 亚洲精品免费看| 欧美激情一区二区三区全黄| 91麻豆福利精品推荐| 国产一区三区三区| 韩国精品主播一区二区在线观看| 国产精品成人免费精品自在线观看 | 亚洲欧洲国产日本综合| 欧美浪妇xxxx高跟鞋交| 欧美日韩专区在线| 亚洲电影视频在线| 在线亚洲免费视频| 欧洲精品在线观看| 亚洲h动漫在线| 777午夜精品免费视频| 老司机午夜精品99久久| 国产视频在线观看一区二区三区 | 国产精品丝袜黑色高跟| 国产成人午夜精品影院观看视频| 麻豆精品久久精品色综合| 国产精品亚洲第一区在线暖暖韩国 | 日本午夜一区二区| 亚洲四区在线观看| 午夜久久久久久久久| av色综合久久天堂av综合| 亚洲人成精品久久久久| 欧美伊人精品成人久久综合97| 91精品中文字幕一区二区三区| 久久黄色级2电影| 欧美国产日韩在线观看| av网站免费线看精品| 天堂在线亚洲视频| 精品免费视频.| 丁香桃色午夜亚洲一区二区三区| 日本一区二区三区久久久久久久久不 | 精品久久久久久久久久久久久久久久久| 国产一区在线不卡| 一区二区三区91| 26uuu精品一区二区在线观看| 粉嫩一区二区三区性色av| 亚洲午夜三级在线| 久久久久久久久久美女| 欧美在线播放高清精品| 欧美国产精品v| 日韩国产欧美在线播放| 欧美精品一区二| 久久99精品国产.久久久久| 色猫猫国产区一区二在线视频| 日韩欧美另类在线| 日本一不卡视频| www.亚洲人| 国产欧美va欧美不卡在线| 青青国产91久久久久久| 国产v综合v亚洲欧| 亚洲一区国产视频| www.欧美.com| 日韩二区三区四区| 亚洲精品视频在线观看免费| 2019国产精品| 欧美丰满少妇xxxbbb| 日本vs亚洲vs韩国一区三区二区| 99免费精品视频| 亚洲精品乱码久久久久| 一本大道综合伊人精品热热| 亚洲女与黑人做爰| 日韩欧美久久久| 激情深爱一区二区| 国产精品人妖ts系列视频| 国产成人免费av在线| 国产三级精品视频| 91福利精品视频| 亚洲国产一二三| 日韩一区二区电影网| 国产成人免费视频| 午夜精品视频一区| 国产日本一区二区| 欧美日韩aaaaaa| 91精彩视频在线观看| 精品一区二区三区蜜桃| 狠狠色丁香久久婷婷综合丁香| 蜜臀va亚洲va欧美va天堂| 成人深夜在线观看| 成人性生交大片免费看中文| 国内欧美视频一区二区| 国产成人午夜99999| 免费在线观看一区二区三区| 图片区小说区区亚洲影院| 欧美国产日本韩| 91丨porny丨蝌蚪视频| 国产精品国产三级国产| 日韩亚洲欧美在线| 欧美美女网站色| 精品99一区二区三区| 日本成人在线网站| 成人毛片在线观看| 麻豆91在线播放| 看电视剧不卡顿的网站| 一本色道a无线码一区v| 婷婷夜色潮精品综合在线| 欧美一区二区精品在线| 欧洲中文字幕精品| 国产精品久久久久久福利一牛影视| 国产高清无密码一区二区三区| 国产91在线看| 精品国产网站在线观看| 亚洲成人av资源| 91麻豆国产福利在线观看| 8x8x8国产精品| 色香色香欲天天天影视综合网| 69堂亚洲精品首页| 亚洲精品国产精品乱码不99| 国产在线视频精品一区| 91麻豆精品久久久久蜜臀 | 国产精品国产三级国产普通话99 | 日韩视频在线你懂得| 伊人色综合久久天天人手人婷| 国产一区二区美女诱惑| 777xxx欧美| 亚洲成a人在线观看| 91免费版在线| 国产精品剧情在线亚洲| 国产suv一区二区三区88区| 日韩免费性生活视频播放| 亚洲成人黄色小说| 欧美亚洲国产一区在线观看网站| 国产精品美女久久久久久久久久久| 激情综合色播激情啊| 日韩精品一区二区三区在线播放| 亚洲高清三级视频| 欧美在线不卡视频| 亚洲一区二区三区在线看 | 在线亚洲免费视频| 亚洲视频在线一区| 97久久超碰国产精品| 国产精品乱人伦一区二区| 国产成人日日夜夜| 国产精品色婷婷久久58| 国产盗摄女厕一区二区三区| 成人性生交大片免费看视频在线| 午夜视频在线观看一区| 国产日韩av一区| 亚洲黄色尤物视频| 欧美视频一区二区三区| 亚洲成av人片在www色猫咪| 久久久久青草大香线综合精品| 不卡一区二区在线| 95精品视频在线| 日韩欧美一级特黄在线播放| 久久97超碰国产精品超碰| 亚洲美女区一区| 久久亚洲精品国产精品紫薇| 欧美这里有精品| 成人免费av资源| 精品一区二区免费| 亚洲成人av一区二区三区| 精品久久久久久久一区二区蜜臀| 九九视频精品免费| 国产露脸91国语对白| 色8久久人人97超碰香蕉987| 精品国产99国产精品| 国产成人啪午夜精品网站男同| 国产精品进线69影院| 欧美在线不卡一区| 极品少妇一区二区| 国产精品久久久久影院老司| 91麻豆精品秘密| 一区二区三区.www| 一区二区三区丝袜| 亚洲精品国久久99热| 国产精品福利一区|