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

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

?? guitabwnd.cpp

?? 該文件包含有C8051單片機(jī)中實(shí)現(xiàn)UART波特率自檢的功能
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//-----------------------------------------------------------------------//
// This is a part of the GuiLib MFC Extention.							 //	
// Autor  :  Francisco Campos											 //
// (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
// This code is provided "as is", with absolutely no warranty expressed  //
// or implied. Any use is at your own risk.								 //		
// You must obtain the author's consent before you can include this code //
// in a software library.												 //
// If the source code in  this file is used in any application			 //
// then acknowledgement must be made to the author of this program		 //	
// fco_campos@tutopia.com													 //
// version : 1.1														 //
// Modified by : Francisco Campos										 //
//-----------------------------------------------------------------------//



#include "stdafx.h"

#include "..\header\GuiTabWnd.h"
//#include "..\header\GuiBasetab.h"
#include "..\header\guitabwnd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGuiTabWnd

#define  SPACE_TAB		4
#define  DEFAULT_FLAT	18

CGuiTabWnd::CGuiTabWnd()
{
	m_rectCliente.SetRectEmpty();
	m_rectTab.SetRectEmpty();
	m_ActualVar=0;
	m_Numtabs=0;
	m_iSelectTab=0;
	m_sizeImag=CSize(15,15);
	m_pArray.RemoveAll();
	m_iMinValRec=0;  //minimo valor requerido para mostrar toda las carpetas
	m_cfont.CreateFont(-11,0,0,0,400,0,0,0,0,1,2,1,34,"MS Sans Serif");
	m_style=S3D;
	m_ActualTitle=TRUE;
	m_alnTab=ALN_BOTTOM;
	m_TypeTab=TYPE_NORMAL;
}

CGuiTabWnd::~CGuiTabWnd()
{
	m_pArray.RemoveAll();
}


BEGIN_MESSAGE_MAP(CGuiTabWnd, CWnd)
	//{{AFX_MSG_MAP(CGuiTabWnd)
	ON_WM_ERASEBKGND()
	ON_WM_PAINT()
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_WM_LBUTTONDOWN()
	ON_WM_RBUTTONDOWN()
	ON_WM_SYSCOLORCHANGE()
	//}}AFX_MSG_MAP
	ON_WM_DESTROY()
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CGuiTabWnd message handlers

BOOL CGuiTabWnd::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if (pMsg->message == WM_MOUSEMOVE)
		CToolTip.RelayEvent(pMsg);

	return CWnd::PreTranslateMessage(pMsg);
}

//****************************************************************************
void CGuiTabWnd::OnSysColorChange( )
{
	CWnd::OnSysColorChange( );
	
}

void CGuiTabWnd::SetTypeTab(TypeTab Type)
{
	m_TypeTab=Type;
}
//****************************************************************************
BOOL CGuiTabWnd::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	if (m_Numtabs == 0)
	{
		CBrush cbr;
		cbr.CreateSysColorBrush(COLOR_BTNFACE);
		CRect m_rect;
		GetClientRect(m_rect);
		pDC->FillRect(m_rect,&cbr);
		
	}
	return TRUE;
}

void CGuiTabWnd::SetActualTitle(BOOL bActual)
{
	m_ActualTitle=bActual;
}

void CGuiTabWnd::SetALingTabs(AlingTab alnTab)
{
	m_alnTab=alnTab;
	Invalidate();
	UpdateWindow();
}

void CGuiTabWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	CBrush cbr;
	CRect m_rectDraw;
	if (m_alnTab!=ALN_TOP)
		cbr.CreateSolidBrush(GuiDrawLayer::GetRGBColorXP());
	else
		cbr.CreateSolidBrush(GuiDrawLayer::GetRGBColorFace());
	GetClientRect(m_rectCliente);
	m_rectTab=m_rectCliente;
	m_rectDraw=m_rectCliente;
	if (m_alnTab==ALN_BOTTOM)
		m_rectDraw.bottom=m_rectCliente.bottom-(m_sizeImag.cy+SPACE_TAB+2);	
	else
		m_rectDraw.top=m_rectCliente.top+(m_sizeImag.cy+SPACE_TAB+2);
	
	if (m_style != S3D) //si son carpetas estilo excel o tabbed como devstudio 7
	{
		if (m_alnTab==ALN_BOTTOM)
		{
			m_rectCliente.bottom=m_rectCliente.bottom-(DEFAULT_FLAT);
			m_rectTab.top=m_rectCliente.bottom+2;
		}
		else
		{
			m_rectTab.bottom=m_rectCliente.top+(DEFAULT_FLAT)+3;
		}
	}

	if (m_alnTab!=ALN_TOP)
	{
		dc.FillRect(m_rectTab,&cbr);
		dc.Draw3dRect(m_rectDraw,GetSysColor(COLOR_BTNSHADOW),GetSysColor(COLOR_BTNSHADOW));
	}
	else
	{
		CRect rc=m_rectDraw;
		for (int i=0; i< 2; i++)
		{
			dc.Draw3dRect(rc,GuiDrawLayer::GetRGBColorFace(),GuiDrawLayer::GetRGBColorFace());
			rc.DeflateRect(1,1);
		}
		
		rc.InflateRect(3,3);
		dc.Draw3dRect(rc,GetSysColor(COLOR_BTNSHADOW),GetSysColor(COLOR_BTNSHADOW));
		rc=m_rectDraw;
		rc.bottom=rc.top+3;
		dc.FillRect(rc,&cbr);
		
	}
	
	
	
	Drawtabs(&dc);
	
}



BOOL CGuiTabWnd::Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID) 
{
	// TODO: Add your specialized code here and/or call the base class
	pParent= pParentWnd;
	return CWnd::Create(NULL, _T(""), dwStyle, rect, pParentWnd, nID);
}

int CGuiTabWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	CToolTip.Create(this,TTS_ALWAYSTIP);
	CToolTip.Activate(TRUE);
	CToolTip.BringWindowToTop();
	// TODO: Add your specialized creation code here
	
	return 0;
}


void CGuiTabWnd::RecalLayout()
{
	GetClientRect(m_rectCliente);

	if (m_style == S3D)
	{
		m_rectCliente.bottom=m_rectCliente.bottom-(m_sizeImag.cy+SPACE_TAB+1);
	}
	else
	{
		if (m_alnTab==ALN_BOTTOM)
			m_rectCliente.bottom=m_rectCliente.bottom-(DEFAULT_FLAT);
		else
		{
			m_rectCliente.top+=DEFAULT_FLAT;
			m_rectCliente.bottom=m_rectCliente.bottom-(DEFAULT_FLAT+4);

		}
	}

	for (int iCont=0; iCont< m_Numtabs;iCont++)
	{
		CGuiTab* ct=(CGuiTab*) m_pArray[iCont];
		CWnd* m_tempWin= ct->pParent;
		ASSERT_VALID(m_tempWin);
		if (m_style == S3D)
		{
			   m_tempWin->SetWindowPos(NULL,m_rectCliente.left+(SPACE_TAB-2),
			   m_rectCliente.top+(SPACE_TAB/2),m_rectCliente.right-(SPACE_TAB+1),
			   m_rectCliente.bottom-(SPACE_TAB+2),SWP_NOACTIVATE|
			   SWP_NOZORDER);
		}
		else
		{
			if (m_alnTab==ALN_BOTTOM)	
			{
			   m_tempWin->SetWindowPos(NULL,m_rectCliente.left+(SPACE_TAB-3),
			   m_rectCliente.top+1,m_rectCliente.right-2,
			   m_rectCliente.bottom+1,SWP_NOACTIVATE|SWP_NOZORDER);
			}
			else
			{ 
				if (m_TypeTab == TYPE_NORMAL)
				{
				  m_tempWin->SetWindowPos(NULL,m_rectCliente.left+(SPACE_TAB-3),
				  m_rectCliente.top+3,m_rectCliente.right-2,
				  m_rectCliente.bottom,SWP_NOACTIVATE|SWP_NOZORDER);
				}
			}
		}
	}
	AjustTabs();
	Invalidate();
	UpdateWindow();
}


void CGuiTabWnd::AjustTabs()
{
	int m_iSizeAct=0;
	m_iMinValRec=4;
	CClientDC dc(this);
	GetClientRect(m_rectCliente);
	if (m_alnTab==ALN_BOTTOM)
		m_rectCliente.bottom=m_rectCliente.bottom-(m_sizeImag.cy+SPACE_TAB+1);
	else
		m_rectCliente.bottom=m_rectCliente.top+(m_sizeImag.cy+SPACE_TAB+1);

	CFont* m_fontOld=dc.SelectObject(&m_cfont);
	for (int iCont=0; iCont< m_Numtabs;iCont++)
	{
		CGuiTab* ct=(CGuiTab*) m_pArray[iCont];
		CRect m_Arect;
		CSize m_sChar=dc.GetTextExtent(ct->lpMsg);
		m_Arect.left=m_iMinValRec+1;
		m_iMinValRec+=m_alnTab!=ALN_TOP?m_sizeImag.cx+2+m_sChar.cx+14:m_sChar.cx+14;
		if(m_alnTab==ALN_BOTTOM)
		{
			m_Arect.top=m_rectCliente.bottom;
			m_Arect.right=m_iMinValRec;
			m_Arect.bottom=m_rectCliente.bottom+4+m_sizeImag.cy;
		}
		else
		{
			m_Arect.top=m_rectCliente.top;
			m_Arect.right=m_iMinValRec;
			m_Arect.bottom=m_rectCliente.top+4+m_sizeImag.cy;
		}
		ct->rect= m_Arect;
		
	}		
	dc.SelectObject(&m_fontOld);
	//si el espacio requerido es mayor que el disponible
	//se debe proporcionar cada tab solo si es 3d
	if (m_style== S3D)
	{
		int m_NewResize=4;
		if (m_iMinValRec > m_rectCliente.Width()-4)
		{
			m_iSizeAct=(m_rectCliente.Width()-12)/m_Numtabs;
			for (int iCont=0; iCont< m_Numtabs;iCont++)
			{
				CGuiTab* ct=(CGuiTab*) m_pArray[iCont];
				CRect m_Arect;
				m_Arect.left=m_NewResize;
				m_Arect.right=m_NewResize+m_iSizeAct;
				m_Arect.top=m_rectCliente.bottom;
				m_Arect.bottom=m_rectCliente.bottom+4+m_sizeImag.cy;
				m_NewResize+=m_iSizeAct+1;
				ct->rect= m_Arect;
			}	
		}
	}

}
void CGuiTabWnd::Drawtabs(CDC* dc)
{
	CPen light(PS_SOLID,1,GetSysColor(COLOR_BTNHIGHLIGHT));
	CPen Dark(PS_SOLID,1,GetSysColor(COLOR_BTNSHADOW));
	CPen Black(PS_SOLID,1,GetSysColor(BLACK_PEN));	
	CRect rectText;
	CFont* m_fontOld=dc->SelectObject(&m_cfont);
	for (int iCont=0; iCont< m_Numtabs;iCont++)
	{
		CGuiTab* ct=(CGuiTab*) m_pArray[iCont];
		CPen* oldPen= dc->SelectObject(&light);
		//si es la carpeta seleccionada, se debe 
		//eliminar las lineas oscuras de encima
		if (iCont ==m_iSelectTab)
		{
			CBrush cbr;
			CRect  m_rectTabAux=ct->rect;
			m_rectTabAux.DeflateRect(1,1);
			m_rectTabAux.top-=4;	
			m_rectTabAux.bottom=m_rectTabAux.top+4;
			cbr.CreateSysColorBrush(COLOR_BTNFACE);
			
			dc->FillRect(ct->rect,&cbr);
			dc->MoveTo(ct->rect.left,ct->rect.top-3);
			dc->LineTo(ct->rect.left,ct->rect.bottom-1);
			dc->FillRect(m_rectTabAux,&cbr);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产一区在线| 国产精品短视频| 99国产欧美久久久精品| 日精品一区二区三区| 国产精品三级在线观看| 欧美一级精品大片| 色综合婷婷久久| 国产精品一二三四五| 五月天一区二区三区| 18欧美乱大交hd1984| 欧美精品一区二区三| 7777精品伊人久久久大香线蕉的 | 成人免费视频播放| 日本女人一区二区三区| 亚洲精品中文字幕在线观看| 国产视频一区二区在线观看| 欧美一区二区三区在线电影| 91成人在线观看喷潮| 99精品偷自拍| 成人午夜碰碰视频| 国产乱码字幕精品高清av| 奇米888四色在线精品| 亚洲无人区一区| 亚洲摸摸操操av| 国产精品美女久久久久久久| 久久精品一区蜜桃臀影院| 日韩一二在线观看| 3d成人动漫网站| 在线播放日韩导航| 91久久国产最好的精华液| 色综合久久久久综合体桃花网| 成人美女视频在线观看| 国产精品18久久久久久久久 | 一区在线观看免费| 中文字幕成人在线观看| 久久精品人人爽人人爽| 久久亚洲一区二区三区四区| 精品久久免费看| 欧美精品一区二区精品网| 欧美xxxx在线观看| 久久久久成人黄色影片| 国产日韩欧美电影| 国产精品免费av| 亚洲久草在线视频| 亚洲福利一区二区| 日产国产欧美视频一区精品| 蜜桃视频一区二区三区| 韩国欧美国产1区| 成人夜色视频网站在线观看| av动漫一区二区| 91浏览器打开| 欧美日韩在线三级| 日韩一区二区电影在线| 欧美电影免费观看完整版| 久久综合色综合88| 国产嫩草影院久久久久| 亚洲视频在线一区| 亚洲无线码一区二区三区| 丝袜美腿亚洲综合| 精品一二三四区| 国产精品乡下勾搭老头1| 91一区二区在线| 欧美日韩美少妇| 精品国产一区二区三区不卡| 国产精品天美传媒| 亚洲午夜精品一区二区三区他趣| 免费在线观看不卡| 成人福利视频网站| 欧美日韩激情一区二区三区| 欧美精品一区二区高清在线观看| 国产精品丝袜黑色高跟| 亚洲综合一区二区精品导航| 老司机精品视频线观看86| 国产成人午夜电影网| 在线视频一区二区三| 欧美精品一区二区三区在线播放 | 九一九一国产精品| 成人性生交大片免费看中文| 欧美日韩一区二区三区在线| 久久久久亚洲蜜桃| 有码一区二区三区| 激情综合色丁香一区二区| 91丨九色porny丨蝌蚪| 538prom精品视频线放| 国产欧美日本一区视频| 午夜久久电影网| 不卡的av网站| 日韩精品中文字幕在线不卡尤物 | 欧美视频中文字幕| 久久久欧美精品sm网站| 亚洲成a人v欧美综合天堂| 国产传媒日韩欧美成人| 9191国产精品| 一区免费观看视频| 国产精品一区二区久久不卡| 欧美男生操女生| 国产精品久久久99| 精品一区二区三区在线观看| 欧美在线视频你懂得| 欧美极品少妇xxxxⅹ高跟鞋| 视频一区在线视频| 日本久久电影网| 国产精品三级久久久久三级| 精品一区二区三区免费观看| 欧美日韩高清在线播放| 亚洲女女做受ⅹxx高潮| 国产成人一级电影| 日韩免费高清av| 天天操天天色综合| 在线免费观看日本欧美| 亚洲国产精品二十页| 精品一区二区三区在线视频| 欧美日本免费一区二区三区| 自拍偷拍亚洲激情| 成人午夜电影小说| 久久久噜噜噜久久中文字幕色伊伊 | 日韩一级二级三级精品视频| 亚洲曰韩产成在线| 91丝袜美腿高跟国产极品老师| 久久亚洲精精品中文字幕早川悠里 | 国产偷国产偷精品高清尤物 | 欧美a级一区二区| 欧美日韩不卡一区| 亚洲影院在线观看| 欧美性高清videossexo| 最新日韩在线视频| jvid福利写真一区二区三区| 中文字幕第一区综合| 成人激情开心网| 国产精品嫩草影院av蜜臀| 成人精品视频一区二区三区| 国产精品青草久久| 99精品国产热久久91蜜凸| 国产精品日韩成人| zzijzzij亚洲日本少妇熟睡| 国产片一区二区三区| 高清在线观看日韩| 亚洲国产高清在线| 91免费视频网址| 一区2区3区在线看| 欧美天天综合网| 日韩影院免费视频| 日韩一卡二卡三卡国产欧美| 麻豆91在线播放| 久久综合色播五月| 春色校园综合激情亚洲| 亚洲欧美怡红院| 欧美亚洲国产bt| 日产精品久久久久久久性色| 精品美女在线观看| 成人午夜伦理影院| 一区二区三区中文字幕在线观看| 在线观看av一区| 日韩电影在线免费看| 精品国产第一区二区三区观看体验 | 爽好多水快深点欧美视频| 91精品免费在线观看| 久久精品99国产精品| 国产亚洲短视频| 99久久伊人精品| 午夜精品久久久久久久99樱桃| 欧美一区二区三区在线| 国产精品一区二区视频| 亚洲精品国产视频| 欧美一区二区三区色| 国产成人精品免费| 亚洲一区二区在线免费看| 日韩一区二区三区av| 国产成人啪午夜精品网站男同| 亚洲黄色录像片| 日韩欧美一区中文| 成人免费视频国产在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 99视频在线精品| 日韩专区中文字幕一区二区| 久久久久久毛片| 91激情五月电影| 激情综合五月婷婷| 樱花影视一区二区| 精品久久久久久久久久久久包黑料 | 欧美不卡123| 欧美综合在线视频| 韩国精品主播一区二区在线观看| 亚洲视频 欧洲视频| 欧美成人免费网站| 99久久er热在这里只有精品66| 蜜臀av在线播放一区二区三区| 亚洲欧美一区二区在线观看| 日韩视频在线永久播放| 91视频xxxx| 国产福利一区二区三区视频在线| 亚洲成a人v欧美综合天堂下载| 国产午夜亚洲精品午夜鲁丝片| 精品视频在线免费| av综合在线播放| 激情五月播播久久久精品| 亚洲成人久久影院| 亚洲天天做日日做天天谢日日欢 | 中文字幕中文字幕在线一区| 91精品国产乱|