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

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

?? guitabwnd.cpp

?? 該文件包含有C8051單片機中實現UART波特率自檢的功能
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//-----------------------------------------------------------------------//
// 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);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线成人午夜影院| 精品一区二区三区久久| 欧亚洲嫩模精品一区三区| 亚洲电影一级黄| 日韩一区精品视频| 久久国产视频网| 蜜桃久久久久久| 欧美在线999| 亚洲精选视频免费看| www久久精品| 一区二区三区中文在线观看| 热久久国产精品| 国产午夜精品久久久久久久| 欧美性xxxxxxxx| 男女性色大片免费观看一区二区| 久久久久免费观看| 成人精品亚洲人成在线| 久久久午夜精品| 国产精品网站一区| 在线观看免费亚洲| 欧美日韩成人激情| 国产美女精品一区二区三区| 久久久久9999亚洲精品| 国产日韩在线不卡| 99视频在线精品| 午夜久久电影网| 欧洲亚洲精品在线| 粉嫩av亚洲一区二区图片| 在线看一区二区| 午夜伦欧美伦电影理论片| 亚洲国产精品嫩草影院| 极品少妇xxxx精品少妇偷拍 | 图片区小说区区亚洲影院| 99精品1区2区| 欧美综合一区二区三区| 综合激情网...| 爽好久久久欧美精品| 欧美性大战久久久久久久蜜臀| 亚洲欧美综合另类在线卡通| 三级欧美在线一区| 欧美精品在线观看一区二区| 午夜电影网一区| 91精品国产入口| 国产精品狼人久久影院观看方式| 一区二区三区电影在线播| 色呦呦网站一区| 日韩欧美三级在线| 国产精品乱码一区二区三区软件| 成人免费黄色大片| 亚洲精品视频自拍| 欧美图片一区二区三区| 国产成人亚洲精品狼色在线| 欧美在线|欧美| 青草av.久久免费一区| 日韩美女主播在线视频一区二区三区| 久久精品国产精品亚洲综合| 久久丝袜美腿综合| 成人免费高清在线| 三级不卡在线观看| 久久久精品中文字幕麻豆发布| 国产另类ts人妖一区二区| 欧美理论电影在线| 国产在线视频一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 日韩精品91亚洲二区在线观看| 91精品国产综合久久久久久久| 久久国产精品72免费观看| 中文字幕第一区综合| 免费在线观看一区| 欧美国产激情一区二区三区蜜月| 色综合中文字幕国产 | 香蕉成人伊视频在线观看| 日韩免费观看高清完整版| 成人av午夜影院| 国产精品久久久久影院亚瑟| 欧美另类久久久品| 成人手机电影网| 天天影视涩香欲综合网| 日本一区免费视频| 9191成人精品久久| 日本国产一区二区| 亚洲伦理在线精品| 精品久久久久久久人人人人传媒| 免费不卡在线视频| 最新不卡av在线| 亚洲精品一区二区三区99| 韩日精品视频一区| 午夜国产精品一区| 亚洲黄色小说网站| 国产精品久久综合| 精品91自产拍在线观看一区| 在线免费不卡电影| 99riav一区二区三区| 国内精品伊人久久久久av影院 | 国产91精品露脸国语对白| 91丨九色丨黑人外教| 亚洲日本丝袜连裤袜办公室| 欧美成人精品高清在线播放| 欧美日韩一区二区欧美激情 | 3d动漫精品啪啪| 欧美中文字幕一区| 色综合一个色综合亚洲| 成人高清免费观看| 国产精品911| 国产乱一区二区| 精品一区二区三区久久久| 天天影视涩香欲综合网| 日日摸夜夜添夜夜添精品视频| 综合激情网...| 亚洲精品免费在线播放| 亚洲丝袜美腿综合| 最近中文字幕一区二区三区| 亚洲国产精品精华液2区45| 国产三级精品视频| 中文字幕精品一区二区三区精品| 337p粉嫩大胆噜噜噜噜噜91av| 日韩欧美国产麻豆| 欧美大片日本大片免费观看| 日韩一级高清毛片| 99久久精品免费看国产免费软件| 国产成人在线观看| www.亚洲精品| 91视频免费看| 在线观看亚洲精品视频| 欧美视频中文一区二区三区在线观看| 欧美视频第二页| 91精品国产品国语在线不卡| 欧美一区二区三区白人| 亚洲成人1区2区| 亚洲1区2区3区4区| 蜜桃视频一区二区| 国产一区二区女| av成人免费在线| 色香蕉成人二区免费| 欧美日韩激情在线| 日韩视频在线观看一区二区| 欧美v日韩v国产v| 国产精品三级av在线播放| 亚洲美女视频在线| 国产亚洲欧美日韩俺去了| 国产精品嫩草影院com| 亚洲综合小说图片| 中文字幕亚洲不卡| 午夜欧美电影在线观看| 狠狠网亚洲精品| 色中色一区二区| 精品国产精品网麻豆系列| 国产精品免费久久久久| 亚洲国产日韩a在线播放性色| 秋霞国产午夜精品免费视频| 国产东北露脸精品视频| 91久久精品一区二区| 欧美大度的电影原声| 亚洲欧美一区二区三区孕妇| 欧美最猛性xxxxx直播| 高清免费成人av| 国产成人av电影| 成人性生交大片免费看视频在线 | 一区二区三区四区视频精品免费| 国产精品美女久久久久久| 国产精品免费看片| 亚洲视频网在线直播| 亚洲自拍欧美精品| 日韩精品亚洲专区| 九九视频精品免费| 国产高清久久久| av电影一区二区| 欧美日韩亚洲综合| 91精品国产综合久久福利| 日韩欧美亚洲国产精品字幕久久久| 精品理论电影在线| 国产精品青草综合久久久久99| 国产精品久久久久久亚洲伦| 亚洲色图欧美在线| 视频一区视频二区中文| 久久99久久99| 成人免费毛片高清视频| 欧美系列亚洲系列| 日韩精品中文字幕一区| 国产视频一区在线观看| 亚洲欧美日韩国产一区二区三区| 亚洲成a人片在线观看中文| 久久久久久日产精品| 天天色综合成人网| 欧美日韩日日夜夜| 亚洲美女淫视频| 一本大道久久a久久综合| 国产精品素人视频| 国产成人综合亚洲网站| 精品三级av在线| 久久成人精品无人区| 91精品国产一区二区三区蜜臀| 午夜欧美电影在线观看| 欧美日韩精品欧美日韩精品一综合| 亚洲狠狠丁香婷婷综合久久久| 99视频国产精品| 亚洲欧美成人一区二区三区| 欧美一级xxx| 捆绑变态av一区二区三区| 91精品国产高清一区二区三区蜜臀 |