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

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

?? guicontainer.cpp

?? 方便的串口監視工具
?? 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一区二区三区免费野_久草精品视频
欧美视频一区在线| 91麻豆123| 国产精品三级久久久久三级| 国产精品99久久久久久有的能看| 久久久久久电影| www.欧美色图| 午夜激情综合网| 精品久久国产老人久久综合| 国产精品99久久久久久似苏梦涵 | 欧美极品美女视频| 97se亚洲国产综合自在线观| 亚洲福利视频一区| 精品人伦一区二区色婷婷| 不卡视频一二三| 性做久久久久久免费观看| 久久婷婷综合激情| 一本久久综合亚洲鲁鲁五月天| 天天亚洲美女在线视频| 久久久久久综合| 欧美在线视频全部完| 久久 天天综合| 亚洲码国产岛国毛片在线| 91精品啪在线观看国产60岁| 成人在线视频首页| 日韩电影在线一区二区| 国产视频亚洲色图| 欧美日韩大陆一区二区| 成人一道本在线| 蜜桃久久久久久| 亚洲日本在线看| 精品久久久久av影院| 色偷偷88欧美精品久久久| 久草在线在线精品观看| 亚洲一区二区四区蜜桃| 久久精品亚洲精品国产欧美| 欧美日韩一区二区电影| 成人黄色小视频在线观看| 蜜桃av一区二区| 亚洲一区视频在线观看视频| 久久久精品免费观看| 欧美久久一二区| 色婷婷国产精品久久包臀| 国产伦理精品不卡| 午夜精品久久久久久久99水蜜桃 | 国产精品国产三级国产三级人妇| 91精品国产乱| 欧美色图激情小说| 99久久99久久精品免费观看| 国产一区二区三区久久久| 日韩成人av影视| 亚洲一区二区在线免费看| 最新热久久免费视频| 2023国产精品自拍| 欧美大片一区二区| 欧美日韩激情在线| 欧美亚日韩国产aⅴ精品中极品| 成人综合在线视频| 国产电影精品久久禁18| 激情五月激情综合网| 免费成人在线网站| 天堂蜜桃一区二区三区| 午夜私人影院久久久久| 亚洲综合色丁香婷婷六月图片| 亚洲欧洲国产专区| 日韩理论电影院| 一区在线观看视频| 亚洲图片欧美激情| 亚洲免费资源在线播放| 亚洲精品国产一区二区精华液 | 欧美精品久久99| 欧美性猛交xxxx黑人交| 在线观看精品一区| 日本韩国欧美一区二区三区| 色婷婷综合久色| 在线精品亚洲一区二区不卡| 色94色欧美sute亚洲线路一ni| 色婷婷精品久久二区二区蜜臂av| 99国产精品久| 一本大道综合伊人精品热热| 色综合天天综合网天天看片| 97精品久久久午夜一区二区三区| 99久久精品国产精品久久| 色综合久久综合网97色综合 | 亚洲人吸女人奶水| 亚洲一区在线视频| 日韩电影在线免费看| 久久超碰97人人做人人爱| 国产高清亚洲一区| 91麻豆文化传媒在线观看| 在线观看视频欧美| 欧美一区二区在线视频| 精品三级在线看| 中文字幕av免费专区久久| 亚洲精选免费视频| 日韩精品久久理论片| 激情综合网av| 99精品在线观看视频| 欧美男人的天堂一二区| 日韩亚洲欧美在线观看| 2023国产精品| 亚洲日本va午夜在线影院| 午夜激情一区二区三区| 国内精品久久久久影院薰衣草| 成人黄色在线视频| 欧美日韩视频在线观看一区二区三区| 日韩三级伦理片妻子的秘密按摩| 久久网这里都是精品| 亚洲精品高清在线观看| 蜜桃传媒麻豆第一区在线观看| 成人性生交大片免费看中文网站| 欧美中文字幕一区| 久久亚洲综合色一区二区三区| 国产精品卡一卡二卡三| 亚洲国产sm捆绑调教视频 | 美脚の诱脚舐め脚责91| 国产99久久久国产精品免费看| 欧洲在线/亚洲| 久久久国产精品麻豆| 午夜伦理一区二区| 成人激情校园春色| 欧美大黄免费观看| 亚洲免费高清视频在线| 激情综合色播激情啊| 欧美性感一类影片在线播放| 国产日韩欧美精品一区| 视频在线观看国产精品| 91在线观看美女| 久久一夜天堂av一区二区三区| 亚洲成a人片在线观看中文| 国产成人免费在线视频| 欧美精品 日韩| 亚洲黄色尤物视频| 波多野结衣中文字幕一区二区三区 | 国产欧美精品区一区二区三区| 午夜精品久久久久久久久久久| 粉嫩13p一区二区三区| 日韩欧美国产综合| 亚洲高清中文字幕| 色婷婷亚洲婷婷| 国产精品不卡在线观看| 国产盗摄精品一区二区三区在线 | 99热99精品| 久久精品视频在线免费观看 | 亚洲午夜久久久久| 成人av在线播放网址| 久久亚洲精品国产精品紫薇| 日本中文一区二区三区| 欧美亚洲综合在线| 亚洲一区在线视频观看| 色狠狠综合天天综合综合| 亚洲欧洲一区二区在线播放| 岛国精品在线播放| 中文字幕免费不卡在线| 国产91精品一区二区| 久久久久久久久免费| 精品亚洲porn| 欧美电影免费观看完整版 | 高清国产午夜精品久久久久久| 欧美成人精精品一区二区频| 欧美a级理论片| 51久久夜色精品国产麻豆| 三级亚洲高清视频| 欧美视频一区二区三区在线观看| 一区二区三区在线观看国产| 色综合天天综合网天天狠天天| 国产精品成人午夜| 91蝌蚪porny九色| 亚洲一区在线免费观看| 欧美日韩成人综合天天影院| 视频一区中文字幕国产| 日韩手机在线导航| 精品一区二区三区在线观看| 欧美精品一区二区三| 国产一区二区三区av电影| 国产欧美一区二区精品仙草咪| 国产馆精品极品| 中文字幕在线观看一区| 色婷婷综合久色| 视频在线观看国产精品| 精品欧美一区二区在线观看| 国产乱码精品一区二区三区五月婷| 2021久久国产精品不只是精品| 国产成人在线看| 一区二区中文视频| 欧美军同video69gay| 久久成人精品无人区| 欧美国产精品久久| 在线观看91精品国产入口| 全部av―极品视觉盛宴亚洲| 久久久久久久网| 色妞www精品视频| 日本 国产 欧美色综合| 国产喷白浆一区二区三区| 91麻豆国产精品久久| 三级成人在线视频| 欧美极品少妇xxxxⅹ高跟鞋| 欧美性做爰猛烈叫床潮| 韩日精品视频一区| 亚洲免费观看高清完整版在线观看| 777午夜精品视频在线播放|