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

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

?? guicontainer.cpp

?? 該文件包含有C8051單片機中實現UART波特率自檢的功能
?? CPP
字號:
//-----------------------------------------------------------------------//
// 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\GuiContainer.h"
#include "..\header\GuiVisioFolder.h"
#include "..\header\guicontainer.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGuiContainer

CGuiContainer::CGuiContainer()
{
	m_arrContainer.RemoveAll();
	m_nItems=0;
	m_clrface=GuiDrawLayer::GetRGBColorFace();
	m_nItems = -1;
	m_bUseWin=FALSE;
	m_bDrawBorder=TRUE;
}

CGuiContainer::~CGuiContainer()
{
	m_arrContainer.RemoveAll();
}


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

/////////////////////////////////////////////////////////////////////////////
// CGuiContainer message handlers

int CGuiContainer::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	return 0;
}

BOOL CGuiContainer::OnCommand(WPARAM wParam, LPARAM lParam)
{
	CWnd* pParent= GetParent();
	pParent->SendMessage (WM_COMMAND,wParam);
	return TRUE;
	

}
//********************************************************************************
void CGuiContainer::OnPaint()  
{
	CPaintDC dc(this); // device context for painting
	CBrush cbr;
	CRect m_rectDraw;
	GetClientRect(&m_rectDraw);
	cbr.CreateSolidBrush(m_clrface);
	dc.FillRect(&m_rectDraw,&cbr);
	if (m_enBorder == STYLE3D)
		dc.Draw3dRect(m_rectDraw,GuiDrawLayer::GetRGBColorBTNHigh(),
			GuiDrawLayer::GetRGBColorShadow());
	if (m_enBorder == STYLEPRESS)
	{
		dc.Draw3dRect(m_rectDraw,GuiDrawLayer::GetRGBColorShadow(),
			GuiDrawLayer::GetRGBColorBTNHigh());
	}
	RecalLayout();

}


BOOL CGuiContainer::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);
}

//********************************************************************************

void CGuiContainer::OnSysColorChange() 
{
	CWnd::OnSysColorChange();
	m_clrface=GuiDrawLayer::GetRGBColorFace();
	for (int i=0; i < m_nItems;i++)
	{
		
		CComponents* m_cwnd=(CComponents*) m_arrContainer[i];
		if(m_cwnd->bMiniTool==TRUE)
			m_cwnd->m_guiMini->SetColor(m_clrface);
	}
	RecalLayout();
}

//********************************************************************************
void CGuiContainer::OnSize(UINT nType, int cx, int cy) 
{
	CWnd::OnSize(nType, cx, cy);
	RecalLayout();
}

//********************************************************************************
BOOL CGuiContainer::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}
void CGuiContainer::UsedAllWindow(BOOL bUseWindow)
{
	m_bUseWin=bUseWindow;
}
//********************************************************************************
/*void CGuiContainer::PreSubclassWindow() 
{
	CWnd::PreSubclassWindow();
	RecalLayout();
}
*/
//********************************************************************************
void  CGuiContainer::RecalLayout()
{
	if (!GetSafeHwnd()) return;
	CRect rcClient;
	CClientDC dc(this);
	GetClientRect(rcClient);
	rcClient.DeflateRect(1,1);
	CRect rctemp=rcClient;
	int nTipo=0;
	CalcAutoSize(rcClient);
	for (int i=0; i < m_nItems;i++)
	{
		
		CComponents* m_cwnd=(CComponents*) m_arrContainer[i];
		
		if(m_cwnd->bMiniTool==TRUE || m_cwnd->bTypeSmall == TRUE)
			nTipo=24;
		else
			nTipo=m_nResultCWnd;
		
		rctemp.bottom=rctemp.top+nTipo;
		
		if (m_cwnd->bMiniTool==TRUE)
			m_cwnd->m_guiMini->MoveWindow(rctemp);
		else if (nTipo != 0)
		{
			if (m_bDrawBorder)
				dc.Draw3dRect(rctemp,GuiDrawLayer::GetRGBColorShadow(),
				GuiDrawLayer::GetRGBColorShadow());
				
				if (m_bUseWin==FALSE)
					rctemp.DeflateRect(2,2);
				
				m_cwnd->m_cwnd->MoveWindow(rctemp);
				
				if (m_bUseWin==FALSE)
					rctemp.InflateRect(2,2);
		}
		rctemp.top+=nTipo;

	}
}

//********************************************************************************
void CGuiContainer::CalcAutoSize(CRect m_rc)
{

	if (m_nItems == -1) return;
	m_nResultCWnd=0;
    m_nResultTools=0; 	
	int m_numCWnd=0;
	BOOL m_bExisteCWnd=FALSE;
	for (int i=0; i < m_nItems;i++)
	{
		if (((CComponents*) m_arrContainer [i])->bMiniTool==TRUE ||
			((CComponents*) m_arrContainer [i])->bTypeSmall ==TRUE)
			m_nResultTools+=24;
		else
		{
				m_bExisteCWnd=TRUE;	
				m_numCWnd++;
		}
	}

	
	if (m_bExisteCWnd)
	{
		if (m_nResultTools > m_rc.Height())  //el espacio no alcanza para los botones
			m_nResultCWnd=0;
		else
		{
			m_nResultCWnd=m_rc.Height()-m_nResultTools;
			m_nResultCWnd/=m_numCWnd;
		}
	}

}
//********************************************************************************
BOOL CGuiContainer::AddComponen(CGuiMiniTool* m_miniTool)
{
	
	if (!m_miniTool->Create(_T(""),WS_VISIBLE | WS_CHILD |SS_OWNERDRAW, 
						CRect(0,0,0,0), this))
		return FALSE;
	if (m_nItems==-1) m_nItems=0;
	m_arrContainer.SetAtGrow(m_nItems, new CComponents(m_miniTool));
	m_nItems++;
	RecalLayout();
	return TRUE;

}
//********************************************************************************
void CGuiContainer::SetBorder(Borders m_enborder)
{
	m_enBorder=m_enborder;
}


//********************************************************************************
void  CGuiContainer::AddComponen(CWnd* m_pParent)
{
	BOOL btype=FALSE; //only object small
	ASSERT_VALID(pParent);
	if (m_pParent->IsKindOf(RUNTIME_CLASS(CComboBox)))
		btype=TRUE;
	if (m_pParent->IsKindOf(RUNTIME_CLASS(CEdit)))
		btype=TRUE;
	if (m_pParent->IsKindOf(RUNTIME_CLASS(CGuiImageLinkButton)))
		btype=TRUE;
	if (m_pParent->IsKindOf(RUNTIME_CLASS(CGuiLabelButton)))
		btype=TRUE;
	else if (m_pParent->IsKindOf(RUNTIME_CLASS(CGuiToolButton)))
		btype=TRUE;

	if (m_nItems==-1) m_nItems=0;
	m_arrContainer.SetAtGrow(m_nItems, new CComponents(m_pParent,btype));
	m_nItems++;
	RecalLayout();


}
//********************************************************************************
CWnd*  CGuiContainer::AddComponen(CRuntimeClass* m_rtcwnd,UINT nID,DWORD dwStyle)
{
	
	CWnd* m_cwnd=NULL;
	BOOL btype=FALSE; //only object small
	if (m_rtcwnd->IsDerivedFrom(RUNTIME_CLASS(CComboBox)))
	{
		 m_cwnd = new CGuiComboBoxExt();
		 if (!((CGuiComboBoxExt*)m_cwnd)->Create(dwStyle|WS_CHILD|WS_VISIBLE, CRect(1,1,100,100), this, nID))
		 {
			m_cwnd=NULL;
			return NULL;
		 }
		 btype=TRUE;
		 goto crear;
	}

	else if ( m_rtcwnd->IsDerivedFrom(RUNTIME_CLASS(CListBox)))
	{
		 m_cwnd = new CListBox();
		 if (!((CListBox*)m_cwnd)->Create(dwStyle|WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), this, nID))
		 {
			m_cwnd=NULL;
			return NULL;
		 }
		 goto crear;
	}
	else if ( m_rtcwnd->IsDerivedFrom(RUNTIME_CLASS(CEdit)))
	{
		 m_cwnd = new CEdit();
		 if (!((CEdit*)m_cwnd)->Create(dwStyle|WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), this, nID))
		 { 
			m_cwnd=NULL;
			return NULL;
		 }
		 
		 btype=TRUE;
		 goto crear;
	}
	
	else if ( m_rtcwnd->IsDerivedFrom(RUNTIME_CLASS(CListCtrl)))
	{
		 m_cwnd = new CListCtrl();
		 if (!((CListCtrl*)m_cwnd)->Create(dwStyle|WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), this, nID))
		 {
			m_cwnd=NULL;
			return NULL;
		 }
		 
		 btype=FALSE;
		 goto crear;
	}
	else if ( m_rtcwnd->IsDerivedFrom(RUNTIME_CLASS(CGuiVisioFolder)))
	{
		 m_cwnd = new CGuiVisioFolder();
		 if (!((CGuiVisioFolder*)m_cwnd)->Create(dwStyle|WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), this, nID))
		 {
			m_cwnd=NULL;
			return NULL;
		 }
		 goto crear;
	}
	else
		return NULL;
	
crear:
	if (m_nItems==-1) m_nItems=0;
	m_arrContainer.SetAtGrow(m_nItems, new CComponents(m_cwnd,btype));
	m_nItems++;
	RecalLayout();
	return m_cwnd;

}

//*************************************************************************
CComponents::CComponents(CGuiMiniTool* m_GuiMini)
{
	m_guiMini=m_GuiMini;
	bMiniTool=TRUE;
}

//*************************************************************************
CComponents::CComponents(CWnd* m_wnd,BOOL bType)
{
	ASSERT(::IsWindow(m_wnd->m_hWnd));
	m_cwnd=m_wnd;
	bMiniTool=FALSE;
	bTypeSmall=bType;
}


BOOL CGuiContainer::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
	// TODO: Add your specialized code here and/or call the base class
	CWnd* pParent= GetParent();
	if (pParent->GetSafeHwnd())
		pParent->SendMessage(WM_NOTIFY, wParam, lParam);
	
	return TRUE;
}

//thanks to  Ernesto Garcia	
void CGuiContainer::OnDestroy()
{
	for( int i=0; i<m_nItems; i++ )
    {
    CComponents *pArr = (CComponents*)m_arrContainer.GetAt(i);
    if( pArr )
        delete pArr;
    }
	
	CWnd::OnDestroy();

	// TODO: Add your message handler code here
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜在线观看| 国产一区二区三区四区五区美女| 久久久国产精华| 欧美一区二区视频在线观看2022 | 波多野结衣中文字幕一区 | 在线免费观看日韩欧美| 成人精品gif动图一区| 99久久精品99国产精品| 91女厕偷拍女厕偷拍高清| 91亚洲国产成人精品一区二区三 | 久久久久久久综合日本| 久久综合av免费| 欧美高清在线精品一区| 国产精品网曝门| 亚洲色图欧洲色图婷婷| 亚洲视频你懂的| 日韩和欧美一区二区三区| 久久99这里只有精品| 国产不卡高清在线观看视频| www.66久久| 欧美精品高清视频| 日韩免费电影一区| 中文字幕久久午夜不卡| 一区二区三区四区av| 男男成人高潮片免费网站| 国产精品一二一区| 色狠狠色狠狠综合| 日韩久久久精品| 国产精品看片你懂得| 婷婷六月综合亚洲| 国产大陆精品国产| 69精品人人人人| 国产精品毛片无遮挡高清| 亚洲午夜电影在线观看| 国产sm精品调教视频网站| 欧美亚洲国产一区在线观看网站| 精品理论电影在线| 一区二区三区精品在线观看| 另类小说视频一区二区| 99re这里只有精品6| 日韩美女视频在线| 亚洲综合区在线| 国产精品69毛片高清亚洲| 色先锋资源久久综合| 日韩免费一区二区三区在线播放| 国产精品久久99| 美女精品一区二区| 色综合天天综合网天天狠天天| 日韩你懂的在线播放| 亚洲一区二区三区四区在线免费观看 | 日韩经典一区二区| 一本色道a无线码一区v| 精品国产欧美一区二区| 亚洲丶国产丶欧美一区二区三区| 高清不卡一二三区| 日韩视频在线观看一区二区| 一区二区视频在线看| 成人爽a毛片一区二区免费| 日韩一区二区三区在线视频| 午夜亚洲福利老司机| 99re这里只有精品首页| 国产日韩av一区| 久久aⅴ国产欧美74aaa| 5858s免费视频成人| 亚洲曰韩产成在线| 91麻豆国产福利精品| 国产精品久久久久影院色老大| 精品系列免费在线观看| 日韩一区二区影院| 丝袜美腿亚洲一区| 欧美日韩一区二区三区在线看| 一区二区三区中文字幕在线观看| 99久久国产综合精品麻豆| 中文字幕一区二区三区在线观看| 成人毛片视频在线观看| 国产精品丝袜在线| 成人三级伦理片| 中文字幕精品一区| 成人国产精品免费| 亚洲美女少妇撒尿| 欧美视频一区在线观看| 香蕉久久一区二区不卡无毒影院 | 国产精品1区2区| 久久精品视频一区二区| 国产精品一区二区黑丝| 国产精品入口麻豆九色| 91网址在线看| 亚洲国产精品久久人人爱| 欧美日韩亚州综合| 美女视频黄免费的久久 | 色综合天天综合狠狠| 一区二区三区四区在线免费观看| 欧美日韩中字一区| 日本女优在线视频一区二区| 久久综合九色欧美综合狠狠| 国产不卡高清在线观看视频| 亚洲欧美视频在线观看视频| 欧美亚洲国产一区二区三区va| 麻豆91在线播放免费| 国产日产亚洲精品系列| 色一情一乱一乱一91av| 免费成人小视频| 欧美激情一区二区三区四区 | 丝袜国产日韩另类美女| 日韩精品一区二区三区视频播放 | 一区二区成人在线| 欧美成人一区二区| www.一区二区| 轻轻草成人在线| 国产精品视频一区二区三区不卡| 色天使久久综合网天天| 美腿丝袜在线亚洲一区| 国产精品不卡在线观看| 欧美一级国产精品| 91视频你懂的| 精品在线观看视频| 亚洲资源中文字幕| 日本一区二区电影| 91精品综合久久久久久| 99久久综合99久久综合网站| 午夜精品一区二区三区电影天堂 | 亚洲一区在线免费观看| 久久久亚洲精品石原莉奈| 91麻豆免费观看| 国产精品亚洲第一区在线暖暖韩国 | 欧美精品乱人伦久久久久久| 懂色av一区二区三区蜜臀| 日韩精品亚洲一区| 亚洲少妇30p| 国产精品天干天干在观线| 欧美岛国在线观看| 884aa四虎影成人精品一区| av成人动漫在线观看| 国产在线播精品第三| 视频一区视频二区在线观看| 亚洲麻豆国产自偷在线| 欧美经典三级视频一区二区三区| 日韩一级片网站| 欧美另类videos死尸| 成人永久免费视频| 国产成人精品亚洲日本在线桃色| 日韩经典中文字幕一区| 亚洲免费av网站| 国产精品全国免费观看高清| 精品福利一区二区三区| 69堂国产成人免费视频| 欧美一区在线视频| 精品视频在线免费观看| 91精品1区2区| 色网综合在线观看| 在线免费观看视频一区| 91在线免费看| 在线看日本不卡| 欧美日韩一区二区三区四区 | 波多野结衣亚洲| 成人av在线电影| bt欧美亚洲午夜电影天堂| 国产a视频精品免费观看| 国产成人综合在线| 成人av免费在线观看| 色综合色狠狠综合色| 91极品美女在线| 91精品一区二区三区在线观看| 欧美一卡在线观看| 精品国产麻豆免费人成网站| xfplay精品久久| 国产精品热久久久久夜色精品三区 | 另类小说一区二区三区| 国产一区二区在线观看免费| 国内精品免费**视频| 粉嫩一区二区三区性色av| av电影在线观看完整版一区二区| 在线国产电影不卡| 欧美一区二区在线免费观看| 久久久久久综合| 亚洲精品国产精华液| 日本欧美在线观看| 成人精品视频一区二区三区尤物| 91在线播放网址| 欧美一区二区三区在线看| 国产日本一区二区| 亚洲一区在线观看免费观看电影高清| 热久久国产精品| 国产91丝袜在线播放0| 欧美最新大片在线看| 欧美成人精品高清在线播放| 1024成人网| 老色鬼精品视频在线观看播放| 成人福利视频网站| 制服.丝袜.亚洲.中文.综合| 国产日韩欧美制服另类| 亚洲一区二区三区影院| 国产激情91久久精品导航| 欧美吻胸吃奶大尺度电影 | 岛国精品一区二区| 欧美日韩中文一区| 国产精品久久久久影院老司| 蜜臀av在线播放一区二区三区| 99麻豆久久久国产精品免费| 欧美一卡二卡三卡四卡|