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

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

?? 3dbar.cpp

?? 《MFC窗口程序設計》書籍源碼 詳細講解MFC框架程序設計
?? CPP
字號:
// 3DBar.cpp: implementation of the C3DBar class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "3DBar.h"

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

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

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
C3DBar::C3DBar()
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	m_crChannel = RGB(0, 100, 0);
	UpdateColours();
	CreatePens();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
C3DBar::~C3DBar()
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
void C3DBar::UpdateColours()
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	// Calculates the lighter and darker colors, as well as the shadow colors.
	m_crColorLight = LightenColor(m_crChannel, 51);
	m_crColorLighter = LightenColor(m_crColorLight, 51);
	m_crColorLightest = LightenColor(m_crColorLighter, 51);
	m_crColorDark = DarkenColor(m_crChannel, 51);
	m_crColorDarker = DarkenColor(m_crColorDark, 51);
	m_crDkShadow = ::GetSysColor(COLOR_3DDKSHADOW);
	m_crLiteShadow = ::GetSysColor(COLOR_3DSHADOW);

	// Get a color halfway between COLOR_3DDKSHADOW and COLOR_3DSHADOW
	BYTE byRed3DDkShadow = GetRValue(m_crDkShadow);
	BYTE byRed3DLiteShadow = GetRValue(m_crLiteShadow);
	BYTE byGreen3DDkShadow = GetGValue(m_crDkShadow);
	BYTE byGreen3DLiteShadow = GetGValue(m_crLiteShadow);
	BYTE byBlue3DDkShadow = GetBValue(m_crDkShadow);
	BYTE byBlue3DLiteShadow = GetBValue(m_crLiteShadow);

	m_crShadow = RGB(byRed3DLiteShadow + ((byRed3DDkShadow - byRed3DLiteShadow) >> 1),
						  byGreen3DLiteShadow + ((byGreen3DDkShadow - byGreen3DLiteShadow) >> 1),
						  byBlue3DLiteShadow + ((byBlue3DDkShadow - byBlue3DLiteShadow) >> 1));
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
void C3DBar::DrawHorizontal(CDC *pDC, CRect &BarRect)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	if (!BarRect.Width())	return;

	CBrush brLightest(m_crColorLightest);
	pDC->FillRect(BarRect, &brLightest);

	int nLeft = BarRect.left;
	int nTop = BarRect.top;
	int nBottom = BarRect.bottom;
	int nRight = BarRect.right;

	CPen *pOldPen = pDC->SelectObject(&m_penColorLight);
	{
		pDC->MoveTo(nLeft + 2, nBottom - 4);	
		pDC->LineTo(nRight - 2, nBottom - 4);
		pDC->MoveTo(nLeft + 2, nTop + 2);		
		pDC->LineTo(nRight - 2, nTop + 2);
		pDC->SetPixel(nLeft + 1, nBottom - 3, m_crColorLight);
		pDC->SetPixel(nLeft + 1, nTop + 1, m_crColorLight);
	}

	pDC->SelectObject(&m_penColorLighter);
	{
		pDC->MoveTo(nLeft + 2, nBottom - 5);
		pDC->LineTo(nRight - 3, nBottom - 5);
		pDC->LineTo(nRight - 3, nTop + 3);
		pDC->LineTo(nLeft + 1, nTop + 3);
		pDC->SetPixel(nLeft + 1, nBottom - 4, m_crColorLighter);
		pDC->SetPixel(nLeft + 1, nTop + 2, m_crColorLighter);
	}

	pDC->SelectObject(&m_penColor);
	{
		pDC->MoveTo(nLeft, nBottom - 1);
		pDC->LineTo(nLeft, nTop);
		pDC->LineTo(nLeft + 2, nTop);
		pDC->SetPixel(nLeft + 1, nBottom - 2, m_crChannel);
		pDC->MoveTo(nLeft + 2, nBottom - 3);
		pDC->LineTo(nRight - 2, nBottom - 3);
		pDC->MoveTo(nLeft + 2, nTop + 1);
		pDC->LineTo(nRight - 1, nTop + 1);
	}
	
	pDC->SelectObject(&m_penColorDark);
	{
		pDC->MoveTo(nLeft + 2, nBottom - 2);
		pDC->LineTo(nRight - 2, nBottom - 2);
		pDC->LineTo(nRight - 2, nTop + 1);
		pDC->MoveTo(nLeft + 2, nTop);
		pDC->LineTo(nRight, nTop);
		pDC->SetPixel(nLeft + 1, nBottom - 1, m_crColorDark);
	}

	pDC->SelectObject(&m_penColorDarker);
	{
		pDC->MoveTo(nLeft + 2, nBottom - 1);
		pDC->LineTo(nRight - 1, nBottom - 1);
		pDC->LineTo(nRight - 1, nTop);
	}

	pDC->SelectObject(&m_penShadow);
	{
		pDC->MoveTo(nRight, nTop);
 		pDC->LineTo(nRight, nBottom);
	}

	pDC->SelectObject(&m_penLiteShadow);
	{
 		pDC->MoveTo(nRight + 1, nTop);
		pDC->LineTo(nRight + 1, nBottom);
	}


	pDC->SelectObject(pOldPen);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
void C3DBar::DeletePens()
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	if (m_penColorLight.m_hObject)		 m_penColorLight.DeleteObject();
	if (m_penColorLighter.m_hObject)	m_penColorLighter.DeleteObject();
	if (m_penColor.m_hObject)			   m_penColor.DeleteObject();
	if (m_penColorDark.m_hObject)		m_penColorDark.DeleteObject();
	if (m_penColorDarker.m_hObject)	   m_penColorDarker.DeleteObject();
	if (m_penDkShadow.m_hObject)	   m_penDkShadow.DeleteObject();
	if (m_penShadow.m_hObject)			m_penShadow.DeleteObject();
	if (m_penLiteShadow.m_hObject)		m_penLiteShadow.DeleteObject();
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
void C3DBar::CreatePens()
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	DeletePens();
	m_penColorLight.CreatePen(PS_SOLID, 1, m_crColorLight);
	m_penColorLighter.CreatePen(PS_SOLID, 1, m_crColorLighter);
	m_penColor.CreatePen(PS_SOLID, 1, m_crChannel);
	m_penColorDark.CreatePen(PS_SOLID, 1, m_crColorDark);
	m_penColorDarker.CreatePen(PS_SOLID, 1, m_crColorDarker);
	m_penDkShadow.CreatePen(PS_SOLID, 1, m_crDkShadow);
	m_penShadow.CreatePen(PS_SOLID, 1, m_crShadow);
	m_penLiteShadow.CreatePen(PS_SOLID, 1, m_crLiteShadow);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
COLORREF C3DBar::LightenColor(const COLORREF crColor, BYTE byIncreaseVal)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	BYTE byRed = GetRValue(crColor);
	BYTE byGreen = GetGValue(crColor);
	BYTE byBlue = GetBValue(crColor);

	if ((byRed + byIncreaseVal) <= 255)
		byRed = BYTE(byRed + byIncreaseVal);
	if ((byGreen + byIncreaseVal)	<= 255)
		byGreen = BYTE(byGreen + byIncreaseVal);
	if ((byBlue + byIncreaseVal) <= 255)
		byBlue = BYTE(byBlue + byIncreaseVal);

	return RGB(byRed, byGreen, byBlue);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
COLORREF C3DBar::DarkenColor(const COLORREF crColor, BYTE byReduceVal)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	BYTE byRed = GetRValue(crColor);
	BYTE byGreen = GetGValue(crColor);
	BYTE byBlue = GetBValue(crColor);

	if (byRed >= byReduceVal)
		byRed = BYTE(byRed - byReduceVal);
	if (byGreen >= byReduceVal)
		byGreen = BYTE(byGreen - byReduceVal);
	if (byBlue >= byReduceVal)
		byBlue = BYTE(byBlue - byReduceVal);

	return RGB(byRed, byGreen, byBlue);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Function Header
void C3DBar::SetBarColour(COLORREF cr)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
{
	m_crChannel = cr;
	UpdateColours();
	CreatePens();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美视频一区| 日韩欧美你懂的| 日韩欧美高清一区| 亚洲素人一区二区| 国产一区二区免费在线| 欧美网站大全在线观看| 中文字幕成人av| 精品一区二区三区在线观看国产 | 欧美日韩国产成人在线免费| 日本一区二区三区高清不卡| 久久精品国产亚洲高清剧情介绍 | 免费成人美女在线观看| 色狠狠av一区二区三区| 国产精品久久久久久久久图文区| 日韩成人一区二区三区在线观看| 色成年激情久久综合| 中文字幕欧美日本乱码一线二线| 久久精品国产澳门| 制服丝袜成人动漫| 调教+趴+乳夹+国产+精品| 色欧美片视频在线观看| 1024成人网| 91亚洲精品久久久蜜桃| 日本一区二区视频在线| 懂色中文一区二区在线播放| 日韩精品一区二区三区老鸭窝| 午夜国产精品一区| 欧美日韩一区二区在线视频| 亚洲国产欧美日韩另类综合 | 欧美日韩在线播放| 亚洲一卡二卡三卡四卡五卡| 欧美写真视频网站| 亚洲高清在线精品| 欧美日产国产精品| 日韩影视精彩在线| 337p日本欧洲亚洲大胆精品| 蜜臀av性久久久久av蜜臀妖精| 欧美精品一卡两卡| 男人的j进女人的j一区| 日韩一卡二卡三卡| 国产在线一区二区| 国产精品麻豆久久久| av电影在线不卡| 亚洲乱码一区二区三区在线观看| 色8久久人人97超碰香蕉987| 午夜伊人狠狠久久| 日韩欧美电影在线| 丁香六月综合激情| 亚洲一区二区三区视频在线播放| 3d动漫精品啪啪一区二区竹菊| 精品在线免费观看| 国产精品久久久久久久久免费樱桃 | 午夜精品久久久久久久久久| 91精品国产美女浴室洗澡无遮挡| 美腿丝袜亚洲色图| 久久久.com| 日本电影亚洲天堂一区| 丝袜亚洲另类丝袜在线| 久久久久久久精| 色菇凉天天综合网| 欧美aaaaa成人免费观看视频| 久久精品欧美一区二区三区麻豆| 99国产精品国产精品毛片| 亚洲资源在线观看| 久久蜜桃一区二区| 91福利区一区二区三区| 青娱乐精品视频在线| 国产精品色哟哟| 欧美日韩国产bt| va亚洲va日韩不卡在线观看| 亚洲va欧美va国产va天堂影院| 久久久亚洲高清| 欧美日韩和欧美的一区二区| 国产精品18久久久久| 极品少妇一区二区| 中文字幕在线免费不卡| 欧美一级午夜免费电影| 色综合中文字幕国产 | 亚洲一区二区三区爽爽爽爽爽| 欧美精品一区二区三| 日本韩国一区二区| 国产精品99久久久久久久vr| 亚洲午夜羞羞片| 中文字幕第一区| 精品成人一区二区三区四区| 欧洲在线/亚洲| 成人动漫中文字幕| 国产在线一区二区| 日韩精品电影一区亚洲| 亚洲欧美怡红院| 久久九九国产精品| 日韩免费高清电影| 精品视频一区二区不卡| 成人黄色免费短视频| 精品在线播放免费| 免费在线观看一区| 天天色图综合网| 亚洲国产日韩一区二区| 亚洲人妖av一区二区| 中文字幕精品一区二区精品绿巨人 | 日本一区二区三级电影在线观看| 欧美一级理论性理论a| 在线中文字幕一区| 91麻豆6部合集magnet| 丁香亚洲综合激情啪啪综合| 国产一区二区三区电影在线观看| 琪琪一区二区三区| 秋霞午夜av一区二区三区| 亚洲一区二区精品视频| 亚洲一区二区黄色| 亚洲高清不卡在线| 亚洲第一成年网| 亚洲成av人片在线观看无码| 亚洲精品免费在线| 亚洲欧美视频一区| 亚洲乱码国产乱码精品精小说| 亚洲欧美在线高清| 尤物av一区二区| 一级做a爱片久久| 亚洲成av人片在www色猫咪| 亚洲伊人色欲综合网| 午夜精品久久久久| 美国十次综合导航| 国产乱人伦偷精品视频不卡| 国产精品亚洲视频| 91在线视频网址| 欧美四级电影网| 日韩一区二区三区电影在线观看 | 国产成人免费视频精品含羞草妖精| 国产另类ts人妖一区二区| 国产99久久久国产精品免费看| 国产 日韩 欧美大片| 成人av在线一区二区| 色成人在线视频| 欧美大胆人体bbbb| 国产精品入口麻豆九色| 一区二区三区四区在线| 日韩高清在线电影| 国产激情91久久精品导航| 99久久久精品免费观看国产蜜| 色综合咪咪久久| 91精品欧美一区二区三区综合在| 精品免费99久久| 综合分类小说区另类春色亚洲小说欧美| 亚洲一区在线观看视频| 美国一区二区三区在线播放| 国产a区久久久| 欧美私模裸体表演在线观看| 精品国产一区二区三区av性色| 国产精品视频一区二区三区不卡 | 亚洲欧美偷拍卡通变态| 蜜桃91丨九色丨蝌蚪91桃色| 国产成人av自拍| 欧美精品一二三| 欧美激情一区在线| 日产国产高清一区二区三区| 国产999精品久久| 欧美精品色综合| 日韩久久一区二区| 国模套图日韩精品一区二区| 色综合久久天天| 久久久久久久久久久黄色| 亚洲成人久久影院| 成人理论电影网| 91精品视频网| 亚洲嫩草精品久久| 国产成人精品影视| 51久久夜色精品国产麻豆| 国产精品免费av| 狠狠色综合播放一区二区| 欧美又粗又大又爽| 国产女人aaa级久久久级| 秋霞午夜鲁丝一区二区老狼| 色天使色偷偷av一区二区| 中国av一区二区三区| 精品一区二区三区影院在线午夜| 在线免费精品视频| 国产欧美日韩精品在线| 欧美aaaaa成人免费观看视频| 欧美性受xxxx| 一区二区三区中文字幕在线观看| 丁香桃色午夜亚洲一区二区三区 | 欧美日韩国产经典色站一区二区三区| 亚洲国产高清aⅴ视频| 国产一区二区三区四区在线观看| 91精品国模一区二区三区| 亚洲主播在线播放| 99r国产精品| 亚洲欧美在线视频观看| 不卡av免费在线观看| 国产精品日产欧美久久久久| 国产成人99久久亚洲综合精品| 精品国产123| 精品一区二区三区免费播放| 日韩一区二区三区四区五区六区| 天天av天天翘天天综合网| 在线观看亚洲精品视频| 亚洲永久精品大片| 欧美性感一类影片在线播放| 亚洲第一主播视频|