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

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

?? cooltabctrl.cpp

?? C++開發(fā)完整酒店管理系統(tǒng)
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
/*####################################################################
	Filename: 	cooltabctrl.cpp
	----------------------------------------------------
	Remarks:	...
	----------------------------------------------------

  ####################################################################*/

#include "stdafx.h"
#include "resource.h"
#include "CoolTabCtrl.h"
#include "tools.h"
#include<MMSYSTEM.H>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/*####################################################################
			------------------------------------------------
							class CTabPageItem
			------------------------------------------------
  ####################################################################*/
CTabPageItem::CTabPageItem(CCoolTabCtrl* pParentWnd, CWnd* pWnd, 
						   const CString &strText, int nNumber)
{
	m_pParentWnd = pParentWnd;
	m_pWnd = pWnd;
	m_dwState = 0;
	m_strText = strText;
	m_nNumber = nNumber;
	m_hIcon = NULL;
}

CTabPageItem::~CTabPageItem()
{
	if (m_hIcon != NULL)
	{
		DestroyIcon(m_hIcon);
		m_hIcon = NULL;
	}
}

void CTabPageItem::SetIcon(HICON hIcon)
{
	if (m_hIcon != NULL)
	{
		DestroyIcon(m_hIcon);
		m_hIcon = NULL;
	}
	m_hIcon = hIcon;
}

void CTabPageItem::Expend()
{
	m_pWnd->MoveWindow(m_rect);
	m_pWnd->ShowWindow(SW_SHOW);
	m_pWnd->UpdateWindow();
}

void CTabPageItem::SetRect(const CRect &rect)
{
	m_rect = rect;
}

void CTabPageItem::Hide()
{
	m_pWnd->ShowWindow(SW_HIDE);
}


void CTabPageItem::OnDraw(CDC *pDC, int nState)
{
	CRect rect(m_rcLabel);
	switch (m_pParentWnd->m_nMode)
	{
	case TABMODE_NONE:
		break;
	case TABMODE_GROUP:
		{
			pDC->FillSolidRect(rect, ::GetSysColor(COLOR_3DFACE));
			switch (m_dwState) 
			{
			case 0:	pDC->Draw3dRect(rect, RGB(255,255,255), ::GetSysColor(COLOR_3DSHADOW));
				break;
			case 1:	pDC->Draw3dRect(rect, ::GetSysColor(COLOR_3DFACE), ::GetSysColor(COLOR_3DFACE));
				break;
			}
			pDC->SetBkMode(TRANSPARENT);
			if (m_hIcon != NULL)
			{
				::DrawIconEx( pDC->m_hDC,	rect.left + 3, rect.top + 1, m_hIcon, 16, 16, NULL,	NULL, DI_NORMAL);
			}
			
			pDC->SetTextColor(RGB(0, 0, 0));
			pDC->DrawText(m_strText, rect, DT_CENTER | DT_SINGLELINE |DT_VCENTER);
		}
	break;
	case TABMODE_BOTTOMTAB:
		{
			COLORREF backcolor = ::GetSysColor(COLOR_3DFACE);
			CPen pen(0, 1, AlphaBlendColor(backcolor, 180));
			CPen *oldpen = pDC->SelectObject(&pen);
			
			if (m_nNumber != m_pParentWnd->m_nActivePage)
			{
				rect.DeflateRect(1, 0);
			}
			else
			{
				rect.DeflateRect(-1, -1, -1, 0);
			}

			pDC->MoveTo(rect.left + 2,  rect.bottom);
			pDC->LineTo(rect.right - 1, rect.bottom);
			pDC->MoveTo(rect.left,  rect.top);
			pDC->LineTo(rect.left, rect.bottom - 1);
			pDC->MoveTo(rect.right,  rect.top);
			pDC->LineTo(rect.right, rect.bottom - 1);
			if (m_nNumber == m_pParentWnd->m_nActivePage)
			{
				CRect rc(rect);
				rc.DeflateRect(1, 0, 0, 0);
				FillGradient(pDC, rc, RGB(255, 255, 255), ::GetSysColor(COLOR_3DFACE));
			}
			else
			{
				CRect rc(rect);
				rc.DeflateRect(1, 0, 0, 0);
				FillGradient(pDC, rc, RGB(245, 245, 245), ::GetSysColor(COLOR_3DFACE));
			}
	
			pDC->SetPixel(rect.left + 1, rect.bottom - 1, AlphaBlendColor(backcolor, 180));
			pDC->SetPixel(rect.right - 1, rect.bottom - 1, AlphaBlendColor(backcolor, 180));

			pDC->SelectObject(oldpen);
			
			pDC->SetBkMode(TRANSPARENT);
			if (m_hIcon != NULL)
			{
				::DrawIconEx( pDC->m_hDC,	rect.left + 7, rect.top + 1, m_hIcon, 16, 16, NULL,	NULL, DI_NORMAL);
				rect.left += 18;
			}
			rect.top += 2;
			pDC->SetTextColor(RGB(0, 0, 0));
			pDC->DrawText(m_strText, rect, DT_CENTER | DT_SINGLELINE |DT_VCENTER);
		}
		break;
	case TABMODE_TOPTAB:
		{
			COLORREF backcolor = ::GetSysColor(COLOR_3DFACE);
			CPen pen(0, 1, AlphaBlendColor(backcolor, 180));
			CPen *oldpen = pDC->SelectObject(&pen);
			
			if (m_nNumber != m_pParentWnd->m_nActivePage)
			{
				rect.DeflateRect(1, 0);
			}
			else
			{
				rect.DeflateRect(-1, 0, -1, -1);
			}

			pDC->MoveTo(rect.left + 2,  rect.top);
			pDC->LineTo(rect.right - 1, rect.top);
			pDC->MoveTo(rect.left,  rect.top +2);
			pDC->LineTo(rect.left, rect.bottom);
			pDC->MoveTo(rect.right,  rect.top + 2);
			pDC->LineTo(rect.right, rect.bottom);
			if (m_nNumber == m_pParentWnd->m_nActivePage)
			{
				CRect rc(rect);
				rc.DeflateRect(1, 1, 0, 0);
				FillGradient(pDC, rc, ::GetSysColor(COLOR_3DFACE), RGB(255, 255, 255));
			}
			else
			{
				CRect rc(rect);
				rc.DeflateRect(1, 1, 0, 0);
				FillGradient(pDC, rc, ::GetSysColor(COLOR_3DFACE), RGB(245, 245, 245));
			}
			pDC->SetPixel(rect.left + 1, rect.top + 1, AlphaBlendColor(backcolor, 180));
			pDC->SetPixel(rect.right - 1, rect.top + 1, AlphaBlendColor(backcolor, 180));

			pDC->SelectObject(oldpen);
			
			pDC->SetBkMode(TRANSPARENT);
			if (m_hIcon != NULL)
			{
				::DrawIconEx( pDC->m_hDC,	rect.left + 7, rect.top + 1, m_hIcon, 16, 16, NULL,	NULL, DI_NORMAL);
				rect.left += 18;
			}
			rect.top += 2;
			pDC->SetTextColor(RGB(0, 0, 0));
			pDC->DrawText(m_strText, rect, DT_CENTER | DT_SINGLELINE |DT_VCENTER);
		}
		break;
	default:
		ASSERT(FALSE);
		break;
	}
}

/*#################################################################
						------------------------
							  構(gòu)建,析構(gòu)函數(shù)
						------------------------
  #################################################################*/

IMPLEMENT_DYNCREATE(CCoolTabCtrl, CWnd)

CCoolTabCtrl::CCoolTabCtrl()
{
	m_nActivePage = 0;
	m_dwStyle = 0;
	m_dwBorderStyle = 0;
	m_nHotItem = 0;
	m_nMode = TABMODE_NONE;
}

CCoolTabCtrl::~CCoolTabCtrl()
{
	int count = m_aTabPage.GetSize();
	for (int i = 0; i < count; i++)
	{
		delete m_aTabPage.GetAt(i);
	}
	m_aTabPage.RemoveAll();
}

BOOL CCoolTabCtrl::Create(const CRect &rect, CWnd *pParentWnd, UINT dwStyle, UINT dwCtrlStyle, UINT nID)
{
	m_dwStyle = dwCtrlStyle;
	
	if (CWnd::Create(AfxRegisterWndClass(CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW, AfxGetApp()->LoadStandardCursor(IDC_ARROW), (HBRUSH)GetStockObject(LTGRAY_BRUSH), NULL),
				 	 NULL, dwStyle, rect, pParentWnd, nID))
	{
		LOGFONT logFont;
		ZeroMemory((void*)&logFont,sizeof(logFont));
		strcpy(logFont.lfFaceName,"宋體");
		logFont.lfHeight = -12;
		logFont.lfWeight = 400;
		logFont.lfCharSet = GB2312_CHARSET;
		logFont.lfOutPrecision = 3;
		logFont.lfClipPrecision = 2; 
		logFont.lfQuality = 1;
		logFont.lfPitchAndFamily = 2;
		m_fontWnd.CreateFontIndirect(&logFont);
		SetFont(&m_fontWnd);
		return TRUE;
	}
	return FALSE;
}

/*#################################################################
					-------------------------------
							  消息處理函數(shù)
					 CCoolTabCtrl message handlers
					-------------------------------
  #################################################################*/

BEGIN_MESSAGE_MAP(CCoolTabCtrl, CWnd)
	//{{AFX_MSG_MAP(CCoolTabCtrl)
	ON_WM_PAINT()
	ON_WM_ERASEBKGND()
	ON_WM_NCPAINT()
	ON_WM_CREATE()
	ON_WM_NCCALCSIZE()
	ON_WM_WINDOWPOSCHANGING()
	ON_WM_NCHITTEST()
	ON_WM_NCLBUTTONDOWN()
	ON_WM_MOUSEMOVE()
	ON_WM_LBUTTONUP()
	ON_WM_SIZE()
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CCoolTabCtrl::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
}

void CCoolTabCtrl::OnNcPaint()
{
	CWindowDC windc(this); // device context for painting
	int count = m_aTabPage.GetSize();
	
	CRect rcWindow, rcClient;
	GetWindowRect(rcWindow);
    GetClientRect(&rcClient);
	ClientToScreen(&rcClient);
    rcClient.OffsetRect(-rcWindow.TopLeft());
    rcWindow.OffsetRect(-rcWindow.TopLeft());

	if (rcClient.bottom > rcClient.top && rcClient.right > rcClient.left)
	{
		windc.ExcludeClipRect(rcClient);
	}

	CMemDC dc(&windc, rcWindow);
	CFont *oldfont = dc.SelectObject(&m_fontWnd);
	dc.FillSolidRect(rcWindow, ::GetSysColor(COLOR_3DFACE));

	
	switch (m_nMode) 
	{
	case TABMODE_NONE:
		{
			DrawBoder(&dc, rcClient);
		}
		break;
	case TABMODE_GROUP:
		{
			dc.Draw3dRect(rcWindow, RGB(157,157,155), RGB(255,255,255));
		}
		break;
	case TABMODE_BOTTOMTAB:
		{
			DrawBoder(&dc, rcClient);
		}
		break;
	case TABMODE_TOPTAB:
		{
			DrawBoder(&dc, rcClient);
		}
		break;
	default:
		ASSERT(FALSE);
		break;
	}
	
	if (m_nMode != TABMODE_NONE && count > 0)
	{
		for (int i = 0; i < count; i++)
		{
			if (i != m_nActivePage)
			{
				m_aTabPage.GetAt(i)->OnDraw(&dc, 0);
			}
		}
		ASSERT(m_nActivePage >= 0 && m_nActivePage < count);
		if (m_nActivePage >= 0 && m_nActivePage < count)
		{
			m_aTabPage.GetAt(m_nActivePage)->OnDraw(&dc, 0);
		}
	}
	dc.SelectObject(oldfont);
}

BOOL CCoolTabCtrl::OnEraseBkgnd(CDC* pDC) 
{
	CRect rect;
	GetClientRect(rect);
//	pDC->FillSolidRect(rect, RGB(255, 255, 255));
	return TRUE;
}

int CCoolTabCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	return 0;
}

void CCoolTabCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS *lpncsp)
{
	CRect rect(lpncsp->rgrc[0]);
	switch (m_nMode) 
	{
	case TABMODE_NONE:
		rect.DeflateRect(2, 2, 4, 4);
		break;
	case TABMODE_GROUP:
		{
			rect.DeflateRect(1, 1);
			int count = m_aTabPage.GetSize();
			if (count > 0 && m_nActivePage >= 0 && m_nActivePage < count)
			{
				rect.top += (m_nActivePage + 1) * 18;
				rect.bottom -= (count - m_nActivePage - 1) * 18;
			}
		}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩1区2区日韩1区2区| 一本色道亚洲精品aⅴ| 五月婷婷色综合| 亚洲一二三四在线| 亚洲欧美日韩电影| 一区二区视频在线| 亚洲精品视频一区二区| 亚洲欧美日韩在线| 有码一区二区三区| 亚洲在线观看免费视频| 香蕉成人啪国产精品视频综合网| 亚洲一区二区在线观看视频| 亚洲高清一区二区三区| 亚洲国产精品麻豆| 日本人妖一区二区| 久久精品国产亚洲一区二区三区| 久久综合综合久久综合| 精品一区二区三区免费视频| 国产在线播放一区三区四| 国产九色sp调教91| 高清不卡在线观看av| 不卡的av中国片| 91黄视频在线| 欧美美女网站色| 日韩视频免费直播| 国产亚洲精品7777| 中文字幕在线不卡视频| 伊人婷婷欧美激情| 日本亚洲视频在线| 国产乱人伦精品一区二区在线观看| 国产成a人无v码亚洲福利| 成人av先锋影音| 欧美视频在线一区二区三区 | 最好看的中文字幕久久| 一区二区三区欧美激情| 日韩高清不卡一区二区三区| 久久电影网电视剧免费观看| 风间由美性色一区二区三区| 色噜噜夜夜夜综合网| 91精品国产综合久久久久久久| 精品久久久久久久久久久久久久久 | 99久久免费视频.com| 日本道精品一区二区三区| 91.com视频| 国产清纯在线一区二区www| 亚洲免费观看在线观看| 麻豆国产一区二区| 99久免费精品视频在线观看| 欧美日本不卡视频| 中文字幕乱码日本亚洲一区二区 | 99精品欧美一区二区蜜桃免费| 欧美日韩一级黄| 国产亚洲欧美色| 亚洲国产aⅴ成人精品无吗| 国产福利不卡视频| 欧美日韩中文字幕一区二区| 久久久久免费观看| 亚洲午夜一区二区| 福利一区二区在线| 3atv一区二区三区| 国产精品久久久久aaaa樱花| 日本免费新一区视频| 一本一道综合狠狠老| 久久久综合九色合综国产精品| 亚洲午夜av在线| 国产成人鲁色资源国产91色综| 欧美视频精品在线观看| 久久精品人人做人人爽人人| 亚洲sss视频在线视频| 国产成人小视频| 51精品秘密在线观看| 亚洲色图视频免费播放| 国产在线精品视频| 欧美日韩一区二区三区不卡| 中文字幕第一区综合| 久久成人精品无人区| 欧美日韩一级大片网址| 国产精品国模大尺度视频| 国精产品一区一区三区mba桃花| 欧美色视频在线| 亚洲精品欧美综合四区| 不卡一区二区三区四区| 欧美精品一区二区三区在线| 日本道精品一区二区三区| 久久无码av三级| 日韩不卡一二三区| 日本道色综合久久| 日韩码欧中文字| 国产乱色国产精品免费视频| 欧美xxxx在线观看| 奇米亚洲午夜久久精品| 欧美三级三级三级| 亚洲一区二区三区国产| 91蝌蚪porny成人天涯| 国产精品免费视频观看| 国产河南妇女毛片精品久久久| 日韩免费看的电影| 日本不卡1234视频| 日韩亚洲欧美成人一区| 蜜桃一区二区三区在线观看| 欧美日韩一区二区不卡| 亚洲综合男人的天堂| 91啦中文在线观看| 亚洲男人电影天堂| 欧美亚洲动漫另类| 性做久久久久久免费观看| 欧美午夜精品理论片a级按摩| 中文字幕中文在线不卡住| 成人性视频网站| 国产精品嫩草99a| 99re这里只有精品首页| 亚洲精品自拍动漫在线| 91国偷自产一区二区三区成为亚洲经典 | 色综合一个色综合| 亚洲美女淫视频| 欧美三级欧美一级| 日本sm残虐另类| 精品盗摄一区二区三区| 国产成人在线视频网址| 中文字幕乱码亚洲精品一区| 99久久精品国产网站| 亚洲精品免费在线播放| 欧美日韩成人综合天天影院| 日本大胆欧美人术艺术动态| 欧美电影免费观看高清完整版 | 日本不卡高清视频| 久久天天做天天爱综合色| 国产成人精品aa毛片| 国产精品不卡一区| 在线观看av一区二区| 日韩av中文字幕一区二区三区| 日韩精品一区二区三区中文精品| 韩国精品在线观看| 国产精品久久久久影院老司| 在线观看网站黄不卡| 免费不卡在线视频| 国产无人区一区二区三区| 91首页免费视频| 视频一区二区欧美| 国产日韩欧美在线一区| 日本高清不卡一区| 麻豆国产欧美一区二区三区| 国产精品久久午夜| 欧美三级一区二区| 国产一区欧美日韩| 一区二区视频免费在线观看| 日韩视频一区二区| 91在线观看免费视频| 免费一级欧美片在线观看| 国产精品女主播av| 91精品国产一区二区| 成人av综合在线| 视频一区在线播放| 欧美国产一区在线| 欧美日韩高清一区二区| 成人激情小说乱人伦| 婷婷久久综合九色国产成人 | 亚洲免费观看视频| 精品粉嫩超白一线天av| 欧美视频在线一区二区三区 | 99国产精品国产精品毛片| 轻轻草成人在线| 国产精品久久久久aaaa| 日韩一区二区三区视频在线 | 久久午夜老司机| 欧美绝品在线观看成人午夜影视 | 国产精品少妇自拍| 日韩一区二区不卡| 色婷婷av一区二区三区软件| 国产麻豆成人精品| 婷婷久久综合九色综合绿巨人 | 久久草av在线| 亚洲一区二区视频在线| 亚洲国产精品高清| 日韩欧美另类在线| 欧美日韩精品一区二区在线播放| 成人高清在线视频| 国产一区在线观看视频| 日本欧美一区二区三区乱码| 亚洲精品网站在线观看| 亚洲国产精品黑人久久久| 精品国产伦一区二区三区观看方式| 欧洲亚洲国产日韩| 成人av资源站| 成人一级片网址| 国产在线视频不卡二| 日韩激情视频在线观看| 一区二区在线观看免费 | 麻豆精品蜜桃视频网站| 亚洲丰满少妇videoshd| 亚洲色图19p| 国产精品久久久久7777按摩| 久久人人超碰精品| 精品国产一二三区| 91精品国产91久久久久久一区二区| 欧美影视一区在线| 色综合久久天天综合网| proumb性欧美在线观看| 国产宾馆实践打屁股91| 国产精品白丝av|