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

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

?? roundb~2.cpp

?? 俄羅斯方塊源代碼
?? 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);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av高清不卡在线| 日韩欧美国产麻豆| 亚洲天堂2016| 大胆亚洲人体视频| 精品欧美黑人一区二区三区| 亚洲图片另类小说| 久久er99热精品一区二区| 欧美日韩一区在线观看| 亚洲视频免费在线| 91欧美激情一区二区三区成人| 亚洲视频一二三区| 韩日欧美一区二区三区| 精品国产免费视频| 成人午夜av在线| 国产精品国产自产拍高清av| 国产在线日韩欧美| 亚洲免费在线视频| 欧美伦理电影网| 人人狠狠综合久久亚洲| 欧美一级国产精品| 国产一区二区精品久久| 国产精品美女久久久久高潮| 色婷婷国产精品| 日本伊人色综合网| 国产精品情趣视频| 在线看国产一区二区| 日韩福利视频网| 国产精品久久久一本精品| 在线视频综合导航| 九九国产精品视频| 欧美高清在线一区| 欧美另类变人与禽xxxxx| 国产精品亚洲成人| 亚洲综合色在线| 日韩精品在线看片z| 不卡的av网站| 国产在线不卡一卡二卡三卡四卡| 亚洲影院在线观看| 欧美精品一区二区三| 欧美日韩电影一区| 成人黄色a**站在线观看| 日本不卡一区二区| 午夜精品久久久久久久| 国产精品欧美综合在线| 亚洲精品在线观| 欧美人妇做爰xxxⅹ性高电影| 不卡欧美aaaaa| 风间由美一区二区三区在线观看 | 欧美综合天天夜夜久久| 国产精品538一区二区在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲欧洲三级电影| 精品成a人在线观看| 欧美一区二区不卡视频| 欧美日韩中文另类| 欧美乱妇一区二区三区不卡视频| 欧美在线free| 欧美一卡二卡三卡| 精品国产伦一区二区三区观看体验| 在线观看av一区二区| 91久久精品一区二区三区| 色婷婷一区二区三区四区| 一本色道久久综合狠狠躁的推荐| 91免费视频大全| 欧洲在线/亚洲| 欧美久久久久久蜜桃| 337p亚洲精品色噜噜狠狠| 欧美一区二区三区白人| 欧美高清在线一区二区| 91网站在线播放| 欧美性猛交xxxx黑人交| 欧美乱妇一区二区三区不卡视频| 日韩精品一区二区三区视频在线观看| 久久综合九色综合欧美就去吻| 久久女同互慰一区二区三区| 国产精品电影一区二区| 丝袜美腿高跟呻吟高潮一区| 国产真实乱偷精品视频免| 成人av网站在线观看| 欧美日韩国产美女| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品污污网站在线观看 | 欧美在线一二三四区| 日韩一级免费一区| 亚洲精品视频在线看| 久久国产夜色精品鲁鲁99| 91首页免费视频| 久久亚洲精品国产精品紫薇| 亚洲国产精品一区二区www| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩精品二区第二页| 国产女同性恋一区二区| 麻豆精品一区二区三区| 在线国产亚洲欧美| 亚洲欧美日韩电影| 成人小视频在线| 国产精品免费久久| 国产精品一区二区在线看| 欧美精品在线一区二区| 亚洲va欧美va国产va天堂影院| 99久久久久久| 亚洲精品伦理在线| 99re这里都是精品| 最近中文字幕一区二区三区| 国产a级毛片一区| 国产日韩在线不卡| 91美女福利视频| 久久精品一二三| 波多野结衣一区二区三区| 五月激情综合网| 亚洲色大成网站www久久九九| 日韩精品一区国产麻豆| 欧美久久久一区| 成人丝袜高跟foot| 国产乱子伦视频一区二区三区| 亚洲一线二线三线视频| 国产精品午夜在线观看| 欧美电视剧在线看免费| 制服丝袜在线91| 欧美日韩三级视频| 欧美伊人精品成人久久综合97| 福利一区二区在线| 国产福利一区在线| 精品一区二区综合| 激情小说亚洲一区| 麻豆精品一区二区三区| 日韩国产欧美视频| 婷婷中文字幕一区三区| 午夜欧美视频在线观看| 欧美一卡二卡三卡四卡| 午夜天堂影视香蕉久久| 91精品国产黑色紧身裤美女| 国产电影一区二区三区| 日日摸夜夜添夜夜添国产精品| 国产亚洲视频系列| 欧美精品一区二区蜜臀亚洲| 欧美三级视频在线播放| 91农村精品一区二区在线| 国产成人免费视频网站高清观看视频| 亚洲777理论| 一区二区三区不卡在线观看| 国产精品高潮久久久久无| 久久精品免视看| www国产精品av| 欧美变态tickling挠脚心| 在线观看三级视频欧美| 在线观看欧美精品| 欧美在线免费观看视频| 在线观看一区二区精品视频| 色一情一伦一子一伦一区| 99久久精品免费看| eeuss鲁片一区二区三区 | 色悠悠久久综合| 91色porny在线视频| 91视频.com| 欧美伊人久久久久久午夜久久久久| 91色视频在线| 欧美日韩电影在线| 欧美电影免费提供在线观看| 精品少妇一区二区三区在线播放| 精品日产卡一卡二卡麻豆| 国产欧美精品在线观看| 久久国产精品72免费观看| 大白屁股一区二区视频| 99精品久久久久久| 欧美丰满少妇xxxxx高潮对白| 欧美无砖专区一中文字| 91国在线观看| 福利一区在线观看| 国产91综合一区在线观看| 国产在线一区二区| 亚洲永久免费av| 亚洲线精品一区二区三区| 一区二区三区**美女毛片| 亚洲激情一二三区| 日欧美一区二区| 国产精品99久久久久久久女警| 99精品久久免费看蜜臀剧情介绍| 99国产精品久久久| 精品欧美乱码久久久久久1区2区| 国产精品福利一区二区三区| 日韩精品一二三四| 色综合一区二区三区| 久久午夜电影网| 美女久久久精品| 欧美一a一片一级一片| 久久精品人人做| 久久99久国产精品黄毛片色诱| 欧美在线一二三| 亚洲免费观看高清完整版在线观看| 免费xxxx性欧美18vr| 91久久免费观看| 亚洲人吸女人奶水| 成人理论电影网| 国产片一区二区| 国产麻豆91精品| 中文字幕av一区二区三区高| 国产麻豆欧美日韩一区| 久久在线免费观看| 久久国产精品区|