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

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

?? xpbutton.cpp

?? 圖書(shū)管理系統(tǒng)
?? CPP
字號(hào):
// XPButton.cpp : implementation file
//

#include "stdafx.h"
#include "jeah_data.h"
#include "XPButton.h"

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

/////////////////////////////////////////////////////////////////////////////
// CXPButton

CXPButton::CXPButton()
{
	
	m_BoundryPen.CreatePen(PS_INSIDEFRAME | PS_SOLID, 1, RGB(0, 0, 0));
	m_InsideBoundryPenLeft.CreatePen(PS_INSIDEFRAME | PS_SOLID, 3, RGB(105,205,105)); 
	m_InsideBoundryPenRight.CreatePen(PS_INSIDEFRAME | PS_SOLID, 3, RGB(251, 202, 106));
	m_InsideBoundryPenTop.CreatePen(PS_INSIDEFRAME | PS_SOLID, 2, RGB(105,205,105));
	m_InsideBoundryPenBottom.CreatePen(PS_INSIDEFRAME | PS_SOLID, 2, RGB(229, 151, 0));
	
	m_FillActive.CreateSolidBrush(RGB(223, 222, 236));
	m_FillInactive.CreateSolidBrush(RGB(222, 223, 236));
//105,205,105 綠
//250, 196, 88 黃
//252, 210, 121 黃
//		m_FillActive.CreateSolidBrush(RGB(105,205,105));
	
	m_InsideBoundryPenLeftSel.CreatePen(PS_INSIDEFRAME | PS_SOLID, 3, RGB(153, 198, 252)); 
	m_InsideBoundryPenTopSel.CreatePen(PS_INSIDEFRAME | PS_SOLID, 2, RGB(162, 201, 255));
	m_InsideBoundryPenRightSel.CreatePen(PS_INSIDEFRAME | PS_SOLID, 3, RGB(162, 189, 252));
	m_InsideBoundryPenBottomSel.CreatePen(PS_INSIDEFRAME | PS_SOLID, 2, RGB(162, 201, 255));
	
	m_bOver = m_bSelected = m_bTracking = m_bFocus = FALSE;
	
}

CXPButton::~CXPButton()
{
		m_BoundryPen.DeleteObject();
	m_InsideBoundryPenLeft.DeleteObject();
	m_InsideBoundryPenRight.DeleteObject();
	m_InsideBoundryPenTop.DeleteObject();
	m_InsideBoundryPenBottom.DeleteObject();
	
	m_FillActive.DeleteObject();
	m_FillInactive.DeleteObject();
	
	m_InsideBoundryPenLeftSel.DeleteObject();
	m_InsideBoundryPenTopSel.DeleteObject();
	m_InsideBoundryPenRightSel.DeleteObject();
	m_InsideBoundryPenBottomSel.DeleteObject();
}


BEGIN_MESSAGE_MAP(CXPButton, CButton)
	//{{AFX_MSG_MAP(CXPButton)
	ON_WM_MOUSEMOVE()
	ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
	ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)

	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CXPButton message handlers

void CXPButton::DoGradientFill(CDC *pDC, CRect *rect)
{
	CBrush brBk[64];
	int nWidth = rect->Width();	
	int nHeight = rect->Height();
	CRect rct;
	
	for (int i = 0; i < 64; i ++)
	{
		if (m_bOver)
		{
			if (m_bFocus)
				brBk[i].CreateSolidBrush(RGB(255 - (i / 4), 255 - (i / 4), 255 - (i / 3)));
			else
				brBk[i].CreateSolidBrush(RGB(255 - (i / 4), 255 - (i / 4), 255 - (i / 5)));
		}
		else
		{
			if (m_bFocus)
				brBk[i].CreateSolidBrush(RGB(255 - (i / 3), 255 - (i / 3), 255 - (i / 4)));
			else
				brBk[i].CreateSolidBrush(RGB(255 - (i / 3), 255 - (i / 3), 255 - (i / 5)));
		}
	}
	
	for (i = rect->top; i <= nHeight + 2; i ++) 
	{
		rct.SetRect(rect->left, i, nWidth + 2, i + 1);
		pDC->FillRect(&rct, &brBk[((i * 63) / nHeight)]);
	}
	
	for (i = 0; i < 64; i ++)
		brBk[i].DeleteObject();

}

void CXPButton::DrawInsideBorder(CDC *pDC, CRect *rect)
{

	CPen *pLeft, *pRight, *pTop, *pBottom;
	
	if (m_bSelected && !m_bOver)
	{
		pLeft = & m_InsideBoundryPenLeftSel;
		pRight = &m_InsideBoundryPenRightSel;
		pTop = &m_InsideBoundryPenTopSel;
		pBottom = &m_InsideBoundryPenBottomSel;
	}
	else
	{
		pLeft = &m_InsideBoundryPenLeft;
		pRight = &m_InsideBoundryPenRight;
		pTop = &m_InsideBoundryPenTop;
		pBottom = &m_InsideBoundryPenBottom;
	}
	
	CPoint oldPoint = pDC->MoveTo(rect->left, rect->bottom - 1);
	CPen* pOldPen = pDC->SelectObject(pLeft);
	pDC->LineTo(rect->left, rect->top + 1);
	pDC->SelectObject(pRight);
	pDC->MoveTo(rect->right - 1, rect->bottom - 1);
	pDC->LineTo(rect->right - 1, rect->top);
	pDC->SelectObject(pTop);
	pDC->MoveTo(rect->left - 1, rect->top);
	pDC->LineTo(rect->right - 1, rect->top);
	pDC->SelectObject(pBottom);
	pDC->MoveTo(rect->left, rect->bottom);
	pDC->LineTo(rect->right - 1, rect->bottom);
	pDC->SelectObject(pOldPen);
	pDC->MoveTo(oldPoint);

	if (m_bSelected && !m_bOver)
		DrawFocusRect(pDC->m_hDC,rect);
}

void CXPButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
		//從lpDrawItemStruct獲取控件的相關(guān)信息
	CRect rect =  lpDrawItemStruct->rcItem;
	CDC *pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
	int nSaveDC=pDC->SaveDC();
	UINT state = lpDrawItemStruct->itemState;
	POINT pt ;
	TCHAR strText[MAX_PATH + 1];
	::GetWindowText(m_hWnd, strText, MAX_PATH);


	
	//畫(huà)按鈕的外邊框,它是一個(gè)半徑為5的圓角矩形
	pt.x = 5;
	pt.y = 5;
	CPen* hOldPen = pDC->SelectObject(&m_BoundryPen);
	pDC->RoundRect(&rect, pt);
	
	//獲取按鈕的狀態(tài)
	if (state & ODS_FOCUS)
	{
		m_bFocus = TRUE;
		m_bSelected = TRUE;
	}
	else
	{
		m_bFocus = FALSE;
		m_bSelected = FALSE;
	}
	
	
	if (state & ODS_SELECTED || state & ODS_DEFAULT)
	{
		m_bFocus = TRUE;
	}

	
	pDC->SelectObject(hOldPen);
	
	rect.DeflateRect(CSize(GetSystemMetrics(SM_CXEDGE), GetSystemMetrics(SM_CYEDGE)));
	
	//根據(jù)按鈕的狀態(tài)填充按鈕的底色
	CBrush* pOldBrush;
	if (m_bOver)
	{
		pOldBrush = pDC->SelectObject(&m_FillActive);
		DoGradientFill(pDC, &rect);
	}
	else
	{
		pOldBrush = pDC->SelectObject(&m_FillInactive);
		DoGradientFill(pDC, &rect);
	}
	
	//根據(jù)按鈕的狀態(tài)繪制內(nèi)邊框
	if (m_bOver || m_bSelected)
		DrawInsideBorder(pDC, &rect);
				
	pDC->SelectObject(pOldBrush);
	
	//顯示按鈕的文本
	if (strText!=NULL)
	{
		CFont* hFont = GetFont();
		CFont* hOldFont = pDC->SelectObject(hFont);
		CSize szExtent = pDC->GetTextExtent(strText, lstrlen(strText));
		CPoint pt( rect.CenterPoint().x - szExtent.cx / 2, rect.CenterPoint().y - szExtent.cy / 2);
		if (state & ODS_SELECTED) 
			pt.Offset(1, 1);
		int nMode = pDC->SetBkMode(TRANSPARENT);
		if (state & ODS_DISABLED)
			pDC->DrawState(pt, szExtent, strText, DSS_DISABLED, TRUE, 0, (HBRUSH)NULL);
		else
			pDC->DrawState(pt, szExtent, strText, DSS_NORMAL, TRUE, 0, (HBRUSH)NULL);
		pDC->SelectObject(hOldFont);
		pDC->SetBkMode(nMode);
	}
	
	
	pDC->RestoreDC(nSaveDC);

}

BOOL CXPButton::OnEraseBkgnd(CDC *pDC)
{
	return true;

}

void CXPButton::PreSubclassWindow()
{
	
	CButton::PreSubclassWindow();
	ModifyStyle(0, BS_OWNERDRAW);

	//設(shè)置按鈕的有效區(qū)域
	CRgn rgn;
	CRect rc;
	GetClientRect(&rc);

	//有效區(qū)域?yàn)橐粋€(gè)角半徑為5的圓角矩形
	rgn.CreateRoundRectRgn(rc.left,rc.top,rc.right,rc.bottom,5,5);

	SetWindowRgn(rgn,TRUE);

	rgn.DeleteObject();

}

void CXPButton::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
		if (!m_bTracking)
	{
		TRACKMOUSEEVENT tme;
		tme.cbSize = sizeof(tme);
		tme.hwndTrack = m_hWnd;
		tme.dwFlags = TME_LEAVE | TME_HOVER;
		tme.dwHoverTime = 1;
		m_bTracking = _TrackMouseEvent(&tme);
	}
	
	CButton::OnMouseMove(nFlags, point);
}

LRESULT CXPButton::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{
	m_bOver = FALSE;
	m_bTracking = FALSE;
	InvalidateRect(NULL, FALSE);
	return 0;
}

LRESULT CXPButton::OnMouseHover(WPARAM wParam, LPARAM lParam)
{
	m_bOver = true;
	InvalidateRect(NULL);
	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品色综合| 日韩三级在线免费观看| 久久99精品国产麻豆不卡| 国产欧美精品国产国产专区| 欧美日韩精品一区二区三区四区 | 亚洲成av人片在www色猫咪| 久久品道一品道久久精品| 欧美午夜理伦三级在线观看| 国产成人自拍网| 麻豆国产欧美日韩综合精品二区| 亚洲另类色综合网站| 国产三区在线成人av| 91精品国产91久久久久久一区二区 | 蓝色福利精品导航| 亚洲成国产人片在线观看| 18涩涩午夜精品.www| 久久这里只精品最新地址| 在线不卡一区二区| 欧美私人免费视频| 色综合久久综合网| www.综合网.com| 大白屁股一区二区视频| 国产在线精品免费av| 日本va欧美va精品发布| 亚洲午夜久久久久久久久电影网| 国产精品乱码妇女bbbb| 精品国产精品一区二区夜夜嗨| 欧美亚洲国产一区二区三区va| 99久久伊人精品| 成年人午夜久久久| 成人永久看片免费视频天堂| 国产盗摄精品一区二区三区在线| 久久av中文字幕片| 久久国产福利国产秒拍| 精品一区二区三区av| 九九久久精品视频 | 色哟哟国产精品| 99热99精品| av成人动漫在线观看| 99国产精品一区| aaa亚洲精品| 色婷婷av一区二区三区软件| 91麻豆高清视频| 在线观看视频91| 欧美另类久久久品| 91精品在线一区二区| 91麻豆精品91久久久久同性| 欧美mv日韩mv国产网站| 2024国产精品| 国产精品区一区二区三| 亚洲视频你懂的| 亚洲国产精品尤物yw在线观看| 亚洲国产视频一区| 人人超碰91尤物精品国产| 蜜桃一区二区三区在线| 黄一区二区三区| 国产91精品一区二区麻豆网站| 波多野结衣精品在线| 欧美少妇bbb| 91精品国产免费| 日本一区二区三区高清不卡| 中文字幕一区二区5566日韩| 亚洲综合另类小说| 蜜桃视频在线观看一区二区| 国产一区二区女| 色综合天天性综合| 欧美精品自拍偷拍动漫精品| 日韩欧美www| 欧美国产一区二区| 亚洲午夜免费电影| 国产一区二区三区黄视频 | 精品国产在天天线2019| 国产欧美日韩在线观看| |精品福利一区二区三区| 亚洲一区二区av电影| 青青草原综合久久大伊人精品优势 | 精品国产网站在线观看| 国产精品久久一卡二卡| 亚洲成av人片www| 国产一区二区不卡在线| 一本一本大道香蕉久在线精品 | 91在线观看成人| 欧美精品国产精品| 中文字幕不卡的av| 五月天丁香久久| 成人国产免费视频| 欧美一区二区三区视频| 国产精品欧美久久久久无广告| 亚洲国产精品影院| 成人免费看片app下载| 欧美精品1区2区3区| 国产日韩精品一区二区三区| 亚洲线精品一区二区三区八戒| 国产夫妻精品视频| 欧美日韩日本视频| 国产精品伦一区二区三级视频| 琪琪久久久久日韩精品| 91视频国产观看| 久久九九99视频| 青青青伊人色综合久久| 欧洲精品在线观看| 国产精品理伦片| 狠狠色2019综合网| 欧美一区二区视频观看视频 | 国产美女精品人人做人人爽| 欧美亚洲高清一区| 亚洲欧洲无码一区二区三区| 免费成人小视频| 欧美日韩中文字幕一区| 亚洲日本免费电影| 国产成人福利片| 欧美电影免费观看完整版| 亚洲午夜国产一区99re久久| 国产成人精品三级| 久久久99精品久久| 韩国精品久久久| 欧美第一区第二区| 青草国产精品久久久久久| 欧美日韩中文另类| 亚洲精品乱码久久久久久黑人 | 欧美大片在线观看一区二区| 亚洲电影第三页| 91精彩视频在线观看| 亚洲欧洲成人精品av97| 风间由美一区二区av101| 久久一二三国产| 紧缚捆绑精品一区二区| 日韩一区二区三区观看| 日本不卡不码高清免费观看| 欧美精品一二三四| 琪琪久久久久日韩精品| 91精品国产欧美一区二区成人| 视频一区二区不卡| 在线成人av网站| 免费在线观看一区| 欧美一二三区在线| 另类综合日韩欧美亚洲| 精品国产一区二区在线观看| 久久99国产精品久久99果冻传媒| 日韩免费性生活视频播放| 精品一区二区三区在线观看国产| 日韩一区二区三区视频| 麻豆91在线观看| 久久久一区二区三区| 国产精品18久久久久久vr| 国产亚洲精品久| 成人国产精品免费观看动漫| 亚洲女同一区二区| 欧美性三三影院| 美女国产一区二区| 欧美大片顶级少妇| 成人性生交大片| 亚洲柠檬福利资源导航| 欧美日本一区二区三区四区| 偷偷要91色婷婷| 26uuu亚洲综合色| 成人激情动漫在线观看| 亚洲精品国产品国语在线app| 在线免费观看视频一区| 婷婷中文字幕一区三区| 精品国产免费人成电影在线观看四季| 韩国一区二区三区| 亚洲欧美综合色| 欧美日韩精品电影| 精品亚洲porn| 亚洲同性gay激情无套| 欧美日韩中文国产| 国产精品一区一区三区| 亚洲欧美日韩在线播放| 欧美一区二区三区播放老司机| 国产精品一区一区三区| 艳妇臀荡乳欲伦亚洲一区| 7777精品伊人久久久大香线蕉最新版| 国产一区在线看| 亚洲裸体在线观看| 欧美大片顶级少妇| 色综合久久久久网| 精品中文字幕一区二区| 17c精品麻豆一区二区免费| 7777精品伊人久久久大香线蕉 | 粉嫩aⅴ一区二区三区四区| 一区二区视频在线| 精品精品欲导航| 日本精品免费观看高清观看| 精油按摩中文字幕久久| 亚洲午夜国产一区99re久久| 久久精品一区二区三区不卡牛牛| 在线看国产日韩| 国产福利一区二区三区视频 | 制服丝袜成人动漫| 成人精品鲁一区一区二区| 日韩高清不卡一区二区三区| 国产精品久久久久永久免费观看 | 欧美巨大另类极品videosbest | 蜜桃久久久久久久| 亚洲丝袜精品丝袜在线| 欧美成人精品1314www| 日本精品一级二级| 成人性生交大片免费看中文网站| 日韩精品久久久久久|