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

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

?? roundb~2.cpp

?? 經(jīng)典的一款俄羅斯方塊-源程序.java.~
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
}

BEGIN_MESSAGE_MAP(CRoundButton, CButton)
	//{{AFX_MSG_MAP(CRoundButton)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRoundButton message handlers

void CRoundButton::PreSubclassWindow() 
{
	CButton::PreSubclassWindow();

	ModifyStyle(0, BS_OWNERDRAW);

	CRect rect;
	GetClientRect(rect);

	// set m_bStretch if the button is not square and landscape 
	m_bStretch = rect.Width() > rect.Height() ? TRUE : FALSE;

	// Resize the window to make it square if it is not stretched
	if(!m_bStretch)	rect.bottom = rect.right = min(rect.bottom,rect.right);

	// Get the vital statistics of the window
	// m_ptLeft/m_ptRight are the centerpoints of the left/right arcs of stretched buttons
	m_ptCentre = m_ptLeft = m_ptRight = rect.CenterPoint();

	m_nRadius  = rect.bottom/2-1;

	m_ptLeft.x = m_nRadius;
	m_ptRight.x = rect.right - m_nRadius - 1;

	// Set the window region so mouse clicks only activate the round section 
	// of the button
	m_rgn.DeleteObject(); 
	SetWindowRgn(NULL, FALSE);

	//simply creating an elliptic region isn't enough
	// if this is a stretched button, the region is somewhat more complex
	//m_rgn.CreateEllipticRgnIndirect(rect);
	if(m_bStretch)
		CreateButtonRgn(m_rgn, rect, m_ptLeft, m_ptRight, m_nRadius);
	else
		m_rgn.CreateEllipticRgnIndirect(rect);

	SetWindowRgn(m_rgn, TRUE);

	// Convert client coords to the parents client coords
	ClientToScreen(rect);
	CWnd* pParent = GetParent();
	if (pParent) pParent->ScreenToClient(rect);

	// Resize the window if it is not stretched
	if(!m_bStretch)	MoveWindow(rect.left, rect.top, rect.Width(), rect.Height(), TRUE);
}

void CRoundButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
	ASSERT(lpDrawItemStruct != NULL);
	
	CDC* pDC   = CDC::FromHandle(lpDrawItemStruct->hDC);
	CRect rect = lpDrawItemStruct->rcItem;
	UINT state = lpDrawItemStruct->itemState;
	UINT nStyle = GetStyle();
	int nRadius = m_nRadius;

	int nSavedDC = pDC->SaveDC();

	pDC->SelectStockObject(NULL_BRUSH);

	if(m_bStretch)
	{	// Since the tetris game uses a background image
		// we cannot simply fill the complete client rect. Instead
		// we fill the shape of the button.
		CRect rc(rect);
		++rc.top;
		--rc.bottom;

		CRgn rgn;
		if(m_bStretch)
			CreateButtonRgn(rgn, rc, m_ptLeft, m_ptRight, m_nRadius);
		else
			m_rgn.CreateEllipticRgnIndirect(rc);

		CBrush brush;
		brush.CreateSolidBrush(::GetSysColor(COLOR_BTNFACE));

		pDC->FillRgn(&rgn, &brush);
	}

	// Draw the focus circle around the button for non-stretched buttons
	if ((state & ODS_FOCUS) && m_bDrawDashedFocusCircle && !m_bStretch)
		DrawCircle(pDC, m_ptCentre, nRadius--, RGB(0,0,0));

	// Draw the raised/sunken edges of the button (unless flat)
	if (nStyle & BS_FLAT) {

		// for stretched buttons: draw left and right arcs and connect the with lines
		if(m_bStretch)
		{
			CPen* oldpen;
			
			CRect LeftBound(0,0,nRadius*2,nRadius*2);
			CRect RightBound(m_ptRight.x-nRadius,0,m_ptRight.x+nRadius,nRadius*2);

			oldpen = pDC->SelectObject(new CPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DDKSHADOW)));
			pDC->Arc(LeftBound, CPoint(m_ptLeft.x,0), CPoint(m_ptLeft.x,nRadius*2));
			pDC->Arc(RightBound, CPoint(m_ptRight.x,nRadius*2), CPoint(m_ptRight.x,0));
			pDC->MoveTo(m_ptLeft.x,0); pDC->LineTo(m_ptRight.x,0);
			pDC->MoveTo(m_ptLeft.x,nRadius*2-1); pDC->LineTo(m_ptRight.x,nRadius*2-1);

			nRadius--;
			LeftBound.DeflateRect(1,1);
			RightBound.DeflateRect(1,1);

			delete pDC->SelectObject(new CPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DHIGHLIGHT)));
			pDC->Arc(LeftBound, CPoint(m_ptLeft.x,1), CPoint(m_ptLeft.x,nRadius*2));
			pDC->Arc(RightBound, CPoint(m_ptRight.x,nRadius*2), CPoint(m_ptRight.x,0));
			pDC->MoveTo(m_ptLeft.x,1); pDC->LineTo(m_ptRight.x,1);
			pDC->MoveTo(m_ptLeft.x,nRadius*2); pDC->LineTo(m_ptRight.x,nRadius*2);

			delete pDC->SelectObject(oldpen);
		}

		// for non-stretched buttons: draw two circles
		else
		{
			DrawCircle(pDC, m_ptCentre, nRadius--, ::GetSysColor(COLOR_3DDKSHADOW));
			DrawCircle(pDC, m_ptCentre, nRadius--, ::GetSysColor(COLOR_3DHIGHLIGHT));
		}
	} else {
		if ((state & ODS_SELECTED))	{

			// draw the circular segments for stretched AND non-stretched buttons
			DrawCircleLeft(pDC, m_ptLeft, nRadius, 
					   ::GetSysColor(COLOR_3DDKSHADOW), ::GetSysColor(COLOR_3DHIGHLIGHT));
			DrawCircleRight(pDC, m_ptRight, nRadius, 
					   ::GetSysColor(COLOR_3DDKSHADOW), ::GetSysColor(COLOR_3DHIGHLIGHT));
			DrawCircleLeft(pDC, m_ptLeft, nRadius-1, 
					   ::GetSysColor(COLOR_3DSHADOW), ::GetSysColor(COLOR_3DLIGHT));
			DrawCircleRight(pDC, m_ptRight, nRadius-1, 
					   ::GetSysColor(COLOR_3DSHADOW), ::GetSysColor(COLOR_3DLIGHT));

			// draw connecting lines for stretched buttons only
			if (m_bStretch)
			{
				CPen* oldpen;
				//CPen* mypen;

				oldpen = pDC->SelectObject(new CPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DDKSHADOW)));
				pDC->MoveTo(m_ptLeft.x, 1); pDC->LineTo(m_ptRight.x, 1);

				delete pDC->SelectObject(new CPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DSHADOW)));
				pDC->MoveTo(m_ptLeft.x, 2);	pDC->LineTo(m_ptRight.x, 2);

				delete pDC->SelectObject(new CPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DLIGHT)));
				pDC->MoveTo(m_ptLeft.x, m_ptLeft.y + nRadius-1); pDC->LineTo(m_ptRight.x, m_ptLeft.y + nRadius-1);

				delete pDC->SelectObject(new CPen(PS_SOLID, 1, ::GetSysColor(COLOR_3DHIGHLIGHT)));
				pDC->MoveTo(m_ptLeft.x, m_ptLeft.y + nRadius); pDC->LineTo(m_ptRight.x, m_ptLeft.y + nRadius);

				delete pDC->SelectObject(oldpen);
			}
					   
		} else {

			// draw the circular segments for stretched AND non-stretched buttons
			DrawCircleLeft(pDC, m_ptLeft, nRadius, 
					   ::GetSysColor(COLOR_3DHIGHLIGHT), ::GetSysColor(COLOR_3DDKSHADOW));
			DrawCircleRight(pDC, m_ptRight, nRadius, 
					   ::GetSysColor(COLOR_3DHIGHLIGHT), ::GetSysColor(COLOR_3DDKSHADOW));
			DrawCircleLeft(pDC, m_ptLeft, nRadius - 1, 
					   ::GetSysColor(COLOR_3DLIGHT), ::GetSysColor(COLOR_3DSHADOW));
			DrawCircleRight(pDC, m_ptRight, nRadius - 1, 
					   ::GetSysColor(COLOR_3DLIGHT), ::GetSysColor(COLOR_3DSHADOW));

			// draw connecting lines for stretched buttons only
			if (m_bStretch)
			{
				CPen* oldpen;

				oldpen = pDC->SelectObject(new CPen(PS_SOLID, 1, pDC->GetPixel(m_ptLeft.x, 1)));
				pDC->MoveTo(m_ptLeft.x, 1); pDC->LineTo(m_ptRight.x, 1);

				delete pDC->SelectObject(new CPen(PS_SOLID, 1, pDC->GetPixel(m_ptLeft.x, 2)));
				pDC->MoveTo(m_ptLeft.x, 2); pDC->LineTo(m_ptRight.x, 2);

				delete pDC->SelectObject(new CPen(PS_SOLID, 1, pDC->GetPixel(m_ptLeft.x, m_ptLeft.y + nRadius)));
				pDC->MoveTo(m_ptLeft.x, m_ptLeft.y + nRadius); pDC->LineTo(m_ptRight.x, m_ptLeft.y + nRadius);

				delete pDC->SelectObject(new CPen(PS_SOLID, 1, pDC->GetPixel(m_ptLeft.x, m_ptLeft.y + nRadius - 1)));
				pDC->MoveTo(m_ptLeft.x, m_ptLeft.y + nRadius - 1); pDC->LineTo(m_ptRight.x, m_ptLeft.y + nRadius - 1);
				
				delete pDC->SelectObject(oldpen);
			}
		}
	}
	
	// draw the text if there is any
	CString strText;
	GetWindowText(strText);

	if (!strText.IsEmpty())
	{
		CRgn rgn;

		if (m_bStretch){
		rgn.CreateRectRgn(m_ptLeft.x-nRadius/2, m_ptCentre.y-nRadius, 
			m_ptRight.x+nRadius/2, m_ptCentre.y+nRadius);}

		else{
		rgn.CreateEllipticRgn(m_ptCentre.x-nRadius, m_ptCentre.y-nRadius, 
			m_ptCentre.x+nRadius, m_ptCentre.y+nRadius);}

		pDC->SelectClipRgn(&rgn);

		CSize Extent = pDC->GetTextExtent(strText);
		CPoint pt = CPoint( m_ptCentre.x - Extent.cx/2, m_ptCentre.y - Extent.cy/2 );

		if (state & ODS_SELECTED) pt.Offset(1,1);

		pDC->SetBkMode(TRANSPARENT);

		if (state & ODS_DISABLED)
			pDC->DrawState(pt, Extent, strText, DSS_DISABLED, TRUE, 0, (HBRUSH)NULL);
		else
		{
			// changed this code to give the text a 3d-look
			COLORREF oldcol = pDC->SetTextColor(::GetSysColor(COLOR_3DHIGHLIGHT));
			pDC->TextOut(pt.x, pt.y, strText);
			pDC->SetTextColor(::GetSysColor(COLOR_3DDKSHADOW));
			pDC->TextOut(pt.x-1, pt.y-1, strText);
			pDC->SetTextColor(oldcol);
		}

		pDC->SelectClipRgn(NULL);
		rgn.DeleteObject();
	}

	// Draw the focus circle on the inside of the button if it is non-stretched
	if ((state & ODS_FOCUS) && m_bDrawDashedFocusCircle && !m_bStretch)
		DrawCircle(pDC, m_ptCentre, nRadius-2, RGB(0,0,0), TRUE);

	pDC->RestoreDC(nSavedDC);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91对白在线观看九色| 波多野结衣亚洲| 亚洲女同ⅹxx女同tv| 欧美一区中文字幕| 99久久伊人精品| 麻豆一区二区99久久久久| 亚洲视频图片小说| 国产亚洲欧美中文| 7777精品伊人久久久大香线蕉最新版 | 国产精品一线二线三线精华| 亚洲自拍偷拍麻豆| 国产精品久久精品日日| 2欧美一区二区三区在线观看视频| 欧洲在线/亚洲| 成人a免费在线看| 国产综合色在线| 手机精品视频在线观看| 亚洲美女精品一区| 亚洲国产精品黑人久久久| 精品久久人人做人人爽| 欧美精品在线一区二区三区| 91女人视频在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 成人免费高清视频在线观看| 久久er精品视频| 日韩国产欧美一区二区三区| 亚洲第一福利视频在线| 亚洲卡通欧美制服中文| 中文字幕一区在线观看| 亚洲国产高清在线| 久久精品水蜜桃av综合天堂| 久久一区二区三区四区| 欧美成人精品1314www| 7777精品伊人久久久大香线蕉| 欧美日韩一区三区| 欧美视频在线一区二区三区| 在线观看网站黄不卡| 色妞www精品视频| 一本在线高清不卡dvd| 色哟哟欧美精品| 色婷婷av一区二区三区软件 | 99久久久久免费精品国产| 国产成人av资源| 国产91高潮流白浆在线麻豆| 成人精品视频.| 99久久综合狠狠综合久久| 成人午夜在线免费| 99精品视频一区| 在线免费精品视频| 欧美高清视频一二三区 | 91丨porny丨最新| 日本久久精品电影| 欧美日韩国产综合一区二区| 欧美老肥妇做.爰bbww| 91精品一区二区三区久久久久久| 日韩一卡二卡三卡四卡| 精品第一国产综合精品aⅴ| 久久久99精品久久| 最新日韩av在线| 有码一区二区三区| 五月天视频一区| 九九热在线视频观看这里只有精品| 国产精品911| 99久久精品国产毛片| 欧美日韩一区二区在线观看 | 久久久久99精品国产片| 国产精品不卡视频| 亚洲国产精品久久人人爱| 日本大胆欧美人术艺术动态| 国产精品中文字幕一区二区三区| 91亚洲国产成人精品一区二区三| 欧美日韩一区在线| 久久精品一区二区三区不卡牛牛 | 精品国产青草久久久久福利| 国产精品视频一二三| 亚洲一区二区精品久久av| 久久国产三级精品| 99久久精品一区| 正在播放一区二区| 国产精品私人影院| 日本在线播放一区二区三区| 成人丝袜高跟foot| 欧美日韩精品一区二区三区四区| 久久久久久日产精品| 亚洲国产一区二区三区青草影视| 精品一区二区在线观看| 在线观看亚洲精品视频| 国产亚洲欧美色| 性欧美疯狂xxxxbbbb| 成人av资源站| 欧美一级片免费看| 亚洲天堂成人网| 久久99国产精品久久99| 欧美影院一区二区| 国产精品网站在线播放| 麻豆一区二区三区| 欧美在线免费观看亚洲| 中文无字幕一区二区三区| 日本在线播放一区二区三区| 色综合久久九月婷婷色综合| 国产性天天综合网| 麻豆91在线播放免费| 欧美专区在线观看一区| 国产日韩精品一区二区浪潮av| 亚瑟在线精品视频| 色欧美日韩亚洲| 亚洲欧美综合另类在线卡通| 国产精品一区在线| 在线综合视频播放| 一区二区三区四区不卡视频| 成人av网址在线观看| 欧美精品一区男女天堂| 美腿丝袜一区二区三区| 欧美精品一级二级| 亚洲国产综合色| 色综合久久久久网| 综合久久久久久久| 波多野结衣在线一区| 国产日韩欧美精品一区| 韩国三级电影一区二区| 精品国产一区二区三区不卡 | 国产一区视频导航| 91精品综合久久久久久| 天天亚洲美女在线视频| 欧美日韩一卡二卡| 亚洲国产精品精华液网站| 色视频成人在线观看免| 亚洲精品日韩一| 91福利精品视频| 一区二区三区欧美日| 在线一区二区三区| 伊人夜夜躁av伊人久久| 91麻豆免费在线观看| 亚洲四区在线观看| 91丨porny丨首页| 亚洲欧美日韩成人高清在线一区| 色综合久久综合| 亚洲欧美偷拍三级| 在线观看亚洲精品| 亚洲高清免费视频| 欧美一区二区三区播放老司机| 日韩精品一二三区| 日韩欧美的一区二区| 久久99国产精品成人| 国产午夜精品一区二区三区视频| 国产馆精品极品| 中文字幕亚洲精品在线观看| 色婷婷久久久综合中文字幕 | 亚洲国产精品久久人人爱蜜臀 | 久久66热re国产| 中文字幕免费一区| 色偷偷久久人人79超碰人人澡| 亚洲影视在线播放| 欧美日韩国产综合视频在线观看| 婷婷中文字幕综合| 精品国产乱码久久久久久久| 丁香婷婷综合五月| 亚洲精品成人少妇| 91麻豆精品国产无毒不卡在线观看| 久久成人久久爱| 一区在线中文字幕| 欧美日韩免费一区二区三区| 青青草国产成人99久久| 国产免费久久精品| 91国偷自产一区二区三区观看| 日韩激情视频在线观看| 久久综合色婷婷| 91免费在线看| 美女视频第一区二区三区免费观看网站| 日韩天堂在线观看| 成人网在线免费视频| 午夜一区二区三区视频| 久久综合色婷婷| 91黄色激情网站| 国产精品自在欧美一区| 亚洲一区影音先锋| 久久久噜噜噜久久人人看| 91国偷自产一区二区开放时间| 精品一区二区三区久久久| 亚洲日穴在线视频| 欧美不卡视频一区| 一本久久a久久精品亚洲| 蜜桃视频一区二区| 亚洲天堂成人在线观看| 日韩欧美中文字幕制服| 一本大道av一区二区在线播放 | 青青青爽久久午夜综合久久午夜 | 国产精品视频麻豆| 欧美精品久久99久久在免费线| 夫妻av一区二区| 免费成人小视频| 夜夜嗨av一区二区三区网页| 久久天堂av综合合色蜜桃网| 在线视频欧美精品| 粉嫩一区二区三区在线看| 免费一级欧美片在线观看| 亚洲狠狠丁香婷婷综合久久久| 国产午夜精品一区二区三区嫩草| 欧美伦理电影网| 色噜噜狠狠成人网p站|