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

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

?? guiminitool.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\GuiMiniTool.h"
#include "..\header\GuiDrawLayer.h"
#include "..\header\GuiToolButton.h"
#include "..\header\guiminitool.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CGuiMiniTool

CGuiMiniTool::CGuiMiniTool()
{
	m_arrButtons.RemoveAll();
	nNumItems=0;
	m_AlingButton=ALIGN_LEFT;
	m_AlinTexto=ALIGN_LEFT;
	m_clrface=GuiDrawLayer::GetRGBColorXP();
	m_bAutoSize=FALSE;
	m_bExisteCombo=FALSE;
	m_cfont.CreateFont(-11,0,0,0,400,0,0,0,0,1,2,1,34,"MS Sans Serif");
	m_clrCaption=GuiDrawLayer::GetRGBColorShadow();
	m_Caption=_T("");
	msz=CSize(0,0);
	
}

CGuiMiniTool::~CGuiMiniTool()
{
	m_arrButtons.RemoveAll();
}


BEGIN_MESSAGE_MAP(CGuiMiniTool, CStatic)
	//{{AFX_MSG_MAP(CGuiMiniTool)
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_WM_ERASEBKGND()
	ON_WM_PAINT()
	ON_WM_SYSCOLORCHANGE()
	//}}AFX_MSG_MAP
	ON_WM_DESTROY()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGuiMiniTool message handlers

int CGuiMiniTool::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CStatic::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	
	return 0;
}

void CGuiMiniTool::OnSysColorChange( )
{
	CStatic::OnSysColorChange( );
	
}

//********************************************************************************
void  CGuiMiniTool::PreSubclassWindow()
{
	CStatic::PreSubclassWindow();
}

//********************************************************************************
void  CGuiMiniTool::AddButton(int nIndex,UINT Cmd,CMenu* pMenu,CString m_szCaption,CString m_ToolTip)
{
	
	m_arrButtons.SetAtGrow(nNumItems, new CArrButton
			(this,m_imgList.ExtractIcon(nIndex),Cmd,&m_cfont,m_szCaption,pMenu,m_ToolTip));
	
	nNumItems++;
	RecalLayout();

}
void  CGuiMiniTool::AddButtonIcon(UINT uIDIcon,UINT Cmd,CMenu* pMenu,CString m_szCaption,CString m_ToolTip)
{
	HICON hIcon=AfxGetApp() ->LoadIcon(uIDIcon); 
	if(hIcon==NULL)		return ; 
	
	m_arrButtons.SetAtGrow(nNumItems, new CArrButton
			(this,hIcon,Cmd,&m_cfont,m_szCaption,pMenu,m_ToolTip));
	
	nNumItems++;
	RecalLayout();
}

//**************************************************************************
HICON CGuiMiniTool::GetImagIcon(int nNum)
{
	return m_imgList.ExtractIcon(nNum);
}
//****************************************************************************
BOOL  CGuiMiniTool::CreateCombo(CGuiComboBoxExt* pControl,UINT nID,int iSize,
				DWORD dwStyle)
{
	ASSERT(pControl);
	if (!pControl->Create(dwStyle, 
			  CRect(1,1,iSize,250), this, nID))
	   return FALSE;
	pControl->m_IsCallMiniTool=TRUE;
	m_arrButtons.SetAtGrow(nNumItems, new CArrButton(pControl));
	nNumItems++;
	RecalLayout();
	return TRUE;

}

//********************************************************************************
void  CGuiMiniTool::SetImageList(UINT nBitmapID, int cx, int nGrow, COLORREF crMask)
{
	CBitmap cbmp;
	BITMAP bmp;
	m_imgList.Create(nBitmapID,cx,nGrow,crMask);
	cbmp.LoadBitmap(nBitmapID);
	cbmp.GetBitmap(&bmp);
	m_imgList.Add(&cbmp,crMask);

}

//********************************************************************************
void CGuiMiniTool::AutoSize(BOOL mbAutosize)
{  
	m_bAutoSize=mbAutosize;
	RecalLayout();
}	

//********************************************************************************
void  CGuiMiniTool::DelButton(int nIndex)
{
	nNumItems--;
	m_arrButtons.RemoveAt(nIndex,nNumItems);
	RecalLayout();
}

//********************************************************************************	
int   CGuiMiniTool::GetCountButton()
{
	return m_arrButtons.GetSize();
}

//********************************************************************************	
void  CGuiMiniTool::RecalLayout()
{
	if (!GetSafeHwnd()) return;
	CRect rcClient;
	GetClientRect(rcClient);
	rcClient.DeflateRect(1,1);
	CRect rctemp=rcClient;
	int nTipo=0;
	if (m_bAutoSize)
		CalcAutoSize(rcClient);
	if (msz.cx > 0)
	{
		if (m_AlinTexto==ALIGN_LEFT)
			rctemp.left+=msz.cx;
		else
			rctemp.right-=msz.cx;
	}

	for (int i=0; i < nNumItems;i++)
	{
		
		CArrButton* m_cwnd=(CArrButton*) m_arrButtons [i];
		
		if(m_cwnd->m_btipo== TRUE)  //es un boton
		{
			CSize sztemp=((CArrButton*) m_arrButtons [i])->m_bt.GetSizeButton();
			nTipo=sztemp.cx;
		}
		else
		{
			CRect rctemp;
			m_cwnd->m_pwnd->GetWindowRect(rctemp);
			if (m_bAutoSize)
			{
				nTipo=m_nResultCombo;
				rctemp.right=rctemp.left+nTipo;
			}
			else
				nTipo=rctemp.Width();
		}
		if (m_AlingButton == ALIGN_RIGHT)
			rctemp.left=rctemp.right-nTipo;
		else
			rctemp.right=rctemp.left+nTipo;
		if (m_cwnd->m_btipo==TRUE)
			m_cwnd->m_bt.MoveWindow(rctemp);
		else
			m_cwnd->m_pwnd->MoveWindow(rctemp);
		if (m_AlingButton == ALIGN_RIGHT)
			rctemp.right-=nTipo;
		else
			rctemp.left+=nTipo;

	}
	m_rcDrawTexto=rctemp;
	Drawtext();
}

//*********************************************************************
void CGuiMiniTool::AlingButtons(Aling Alingsb)
{
	m_AlingButton=Alingsb;	
}

void CGuiMiniTool::SetCaption(CString mSzCaption,Aling AlinText)
{
	CClientDC dc(this);
	m_Caption=mSzCaption;
	msz=dc.GetTextExtent(m_Caption,m_Caption.GetLength());
	m_AlinTexto=AlinText;
	Invalidate();
}

void CGuiMiniTool::SetColorCaption(COLORREF	clrCaption)
{
	m_clrCaption=clrCaption;
}
//*********************************************************************
void CGuiMiniTool::CalcAutoSize(CRect m_rc)
{

	m_nResultCombo=0;
    m_nResultButtons=0; 	
	int m_numCombo=0;
	for (int i=0; i < nNumItems;i++)
	{
		if (((CArrButton*) m_arrButtons [i])->m_btipo ==TRUE)
		{
			CArrButton* mt=(CArrButton*) m_arrButtons [i];
			CSize sztemp=((CArrButton*) m_arrButtons [i])->m_bt.GetSizeButton();
			m_nResultButtons+=sztemp.cx;
		}
		else
		{
			m_bExisteCombo=TRUE;	
			m_numCombo++;
		}
	}

	//calculamos el espacio para los combobox

	if (m_bExisteCombo)
	{
		if (m_nResultButtons+msz.cx > m_rc.Width())  //el espacio no alcanza para los botones
			m_nResultCombo=0;
		else
		{
			if ((GetSystemMetrics(SM_CXHTHUMB)+msz.cx) > m_rc.Width()-50)
				m_nResultCombo=0;
			else
				{
					m_nResultCombo=m_rc.Width()-(m_nResultButtons+msz.cx);
					m_nResultCombo/=m_numCombo;
				}
				
		}
	}

}

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

void CGuiMiniTool::SetBorder(Borders Style)
{
	m_border=Style;
}  


//********************************************************************************
void CGuiMiniTool::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_border == STYLE3D)
		dc.Draw3dRect(m_rectDraw,GuiDrawLayer::GetRGBColorBTNHigh(),
			GuiDrawLayer::GetRGBColorShadow());
	if (m_border == STYLEPRESS)
	{
		dc.Draw3dRect(m_rectDraw,GuiDrawLayer::GetRGBColorShadow(),
			GuiDrawLayer::GetRGBColorBTNHigh());
	}
	if (m_border == STYLEFRAME)
	{
		dc.Draw3dRect(m_rectDraw,GuiDrawLayer::GetRGBColorShadow(),
			GuiDrawLayer::GetRGBColorShadow());
	}
	Drawtext();
		//el flat ya esta
}


//********************************************************************************
void CGuiMiniTool::SetColor(COLORREF m_clrFace)
{
	m_clrface=m_clrFace;
	for (int i=0; i < nNumItems;i++)
    	if (((CArrButton*) m_arrButtons [i])->m_btipo ==TRUE)
			((CArrButton*) m_arrButtons [i])->m_bt.SetColor(m_clrface);
		else
			((CArrButton*) m_arrButtons [i])->m_pwnd->SetColor(m_clrface);
	
}

//********************************************************************************
void CGuiMiniTool::OnSize(UINT nType, int cx, int cy) 
{
	CStatic::OnSize(nType, cx, cy);
	RecalLayout();	
	// TODO: Add your message handler code here
	
}

//********************************************************************************
BOOL CGuiMiniTool::OnEraseBkgnd(CDC* pDC) 
{
	// TODO: Add your message handler code here and/or call default
	return TRUE;
}


//********************************************************************************
CArrButton::CArrButton(CGuiMiniTool* pParent,HICON m_hIcon,UINT Cmd,CFont* m_cfont,CString m_szCaption,
					   CMenu *pMenu,CString m_ToolTip)
{

	m_bt.Create(_T(""), WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON | BS_OWNERDRAW, 
		CRect(0,0,0,0), pParent, Cmd);
	if (!m_szCaption.IsEmpty())
	{
		m_bt.SetFont(m_cfont);
		m_bt.SetCaption(m_szCaption);
	}
//	m_bt=m_button;
	m_bt.SethIcon(m_hIcon);
	m_bt.SetToolTip(m_ToolTip);
	m_bt.SetMenu(pMenu);
	m_btipo=TRUE;
}

//********************************************************************************
CArrButton::CArrButton(CGuiComboBoxExt* m_pComponent)
{
	ASSERT(m_pComponent);
	m_pwnd=m_pComponent;
	m_btipo=FALSE;
}

//********************************************************************************
BOOL CGuiMiniTool::OnCommand(WPARAM wParam, LPARAM lParam)
{
	HWND hwnd = (HWND) lParam;	
	for (int i=0; i < nNumItems;i++)
	{
		if (((CArrButton*) m_arrButtons [i])->m_btipo ==TRUE)
			if (((CArrButton*) m_arrButtons [i])->m_bt.m_hWnd
				== hwnd)
			{
				int x=((CArrButton*) m_arrButtons [i])->m_bt.GetDlgCtrlID();
				CWnd* pParent= GetParent();
				pParent->SendMessage (WM_COMMAND,x);
				AfxGetMainWnd()->SendMessage(WM_COMMAND,x);
				return TRUE;
			}
	
	}
	return FALSE;

}

CGuiToolButton*  CGuiMiniTool::GetButton(UINT uID_Object)//,CGuiToolButton* m_btn)
{
	
	for (int i=0; i < nNumItems;i++)
	{
		if (((CArrButton*) m_arrButtons [i])->m_btipo ==TRUE)
			if (((CArrButton*) m_arrButtons [i])->m_bt.GetDlgCtrlID()==(int signed )uID_Object)
			{
				
				CGuiToolButton* m_btn=&((CArrButton*) m_arrButtons [i])->m_bt;
				return m_btn;
				
			}
	
	}
	return NULL;//m_btn=NULL;
}


void CGuiMiniTool::Drawtext()
{
	CClientDC dc(this);
	CRect rc;
	GetClientRect(rc);
	CFont* m_fontOld=dc.SelectObject(&m_cfont);
	int nMode = dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(m_clrCaption);
	if(m_AlinTexto==ALIGN_LEFT)
	{
		rc.left+=5;
		dc.DrawText(m_Caption,rc,DT_SINGLELINE|DT_LEFT|DT_VCENTER) ;
	}
	else
	{
			m_rcDrawTexto.left=(long)(rc.right-msz.cx*1.1);
			m_rcDrawTexto.right=m_rcDrawTexto.left+msz.cx;
			dc.DrawText(m_Caption,m_rcDrawTexto,DT_SINGLELINE|DT_RIGHT|DT_VCENTER) ;
	}
	dc.SetBkMode(nMode);
	dc.SelectObject(&m_fontOld);
	
}

//thanks to  Ernesto Garcia	

void CGuiMiniTool::OnDestroy()
{
	
	for( int i=0; i<nNumItems; i++ )
    {
    CArrButton *pArr = (CArrButton*)m_arrButtons.GetAt(i);
    if( pArr )
        delete pArr;
    }
	
	CStatic::OnDestroy();

	// TODO: Add your message handler code here
}

void CGuiMiniTool::EnableButton(UINT unID, BOOL bEnable)
{
	GetButton(unID)->EnableWindow(bEnable);
}

void CGuiMiniTool::SetButtonState(UINT unID, BOOL bPressed)
{
	GetButton(unID)->SetState(bPressed);
}

BOOL CGuiMiniTool::GetButtonEnabled(UINT unID)
{
	return GetButton(unID)->IsWindowEnabled();
}

BOOL CGuiMiniTool::GetButtonState(UINT unID)
{
	return (GetButton(unID)->GetState()&0x0004);
}

void CGuiMiniTool::SetButtonToolTip(UINT unID, LPCTSTR str)
{
	GetButton(unID)->SetToolTip(str);
}

void CGuiMiniTool::SetButtonCaption(UINT unID, LPCTSTR str)
{
	GetButton(unID)->SetCaption(str);
	GetButton(unID)->Invalidate();
	GetButton(unID)->UpdateWindow();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区免费视频| 日本免费在线视频不卡一不卡二| 欧美日本一区二区| 成人av在线资源| 精品一区二区三区蜜桃| 亚洲高清久久久| 国产精品麻豆久久久| 欧美一区二区三区影视| 色综合天天综合在线视频| 91免费精品国自产拍在线不卡| 性感美女久久精品| 中文字幕一区二区三区在线播放| 欧美成人性战久久| 欧美伦理视频网站| 94-欧美-setu| 成人午夜伦理影院| 亚洲乱码精品一二三四区日韩在线| 久久精品国产一区二区三区免费看| 中文在线一区二区| xf在线a精品一区二区视频网站| 91网址在线看| 国产老妇另类xxxxx| 亚洲国产精品天堂| 亚洲国产精品av| 欧美激情一区二区三区蜜桃视频| 99在线视频精品| 亚洲一区二区免费视频| 欧美国产视频在线| 日韩一区二区三区高清免费看看| 成人免费毛片嘿嘿连载视频| 日韩中文字幕av电影| 婷婷综合在线观看| 依依成人综合视频| 亚洲精品国产第一综合99久久| 亚洲国产成人在线| 精品免费一区二区三区| 欧美精品久久一区| 精品视频资源站| 99久久婷婷国产精品综合| 国产综合久久久久久鬼色| 免费欧美在线视频| 午夜av电影一区| 2021中文字幕一区亚洲| 欧美日本国产视频| 91福利在线观看| av电影天堂一区二区在线观看| 国产成人免费视频网站 | 亚洲日本成人在线观看| 久久久久综合网| 精品国产乱码久久久久久老虎| 欧美日韩的一区二区| 欧美三片在线视频观看 | 成人av在线播放网址| 国产精品正在播放| 国产成人免费9x9x人网站视频| 精品亚洲成a人在线观看| 奇米四色…亚洲| 免播放器亚洲一区| 亚洲电影一区二区三区| 亚洲欧美日韩国产一区二区三区 | 美女视频网站久久| 国产精品久线在线观看| 欧美一级黄色录像| 日韩欧美一区在线| 日韩精品在线看片z| 日韩精品一区二区三区蜜臀| 欧美成人video| 精品国产一区二区三区久久影院| 精品粉嫩超白一线天av| 久久天天做天天爱综合色| www久久久久| 日本一区二区综合亚洲| 亚洲精品中文字幕在线观看| 国产99久久久精品| 国产精品久久午夜| 中文字幕一区二区三区四区不卡 | 亚洲另类春色国产| 中文字幕一区在线| 亚洲一区二区三区四区在线观看| 亚洲国产精品久久艾草纯爱| 亚洲不卡av一区二区三区| 蜜桃一区二区三区四区| 国内精品久久久久影院薰衣草| 国产精品资源网站| 97国产一区二区| 欧美视频一二三区| 日韩丝袜情趣美女图片| 欧美一级国产精品| 日韩欧美国产综合| 国产精品久久久久aaaa樱花| 一区二区三区免费观看| 日本中文字幕一区二区视频| 狠狠色综合日日| 99久久久精品| 在线免费视频一区二区| 日韩欧美国产午夜精品| 国产精品电影院| 亚洲一区二区三区小说| 狠狠色丁香久久婷婷综合丁香| 成人精品视频一区二区三区尤物| 一本色道久久综合狠狠躁的推荐 | 秋霞电影一区二区| 成人av动漫在线| 91精品国产综合久久久久久久久久| 99精品欧美一区二区三区小说 | 美国毛片一区二区| 国产成人亚洲综合a∨婷婷| 欧美中文字幕一二三区视频| 欧美成人女星排行榜| 亚洲卡通动漫在线| 国产在线观看一区二区| 欧美中文字幕一二三区视频| 国产视频一区在线播放| 国产综合色精品一区二区三区| 色婷婷av一区二区| 最新久久zyz资源站| 韩国v欧美v亚洲v日本v| 欧美电影一区二区| 亚洲欧洲一区二区在线播放| 国产乱子伦视频一区二区三区 | 国产精品三级视频| 丝袜美腿亚洲综合| 欧美日韩中字一区| 国产精品你懂的在线| 亚洲线精品一区二区三区八戒| 91天堂素人约啪| 久久综合资源网| 国产综合色产在线精品| 欧美猛男gaygay网站| 亚洲成年人影院| 97久久精品人人澡人人爽| 中文字幕在线观看不卡| 国产一区二区中文字幕| 日韩亚洲电影在线| 亚洲国产精品自拍| 91麻豆成人久久精品二区三区| 久久色在线视频| 久久国产人妖系列| 欧美成人综合网站| 免费精品99久久国产综合精品| 欧美美女直播网站| 午夜精品久久久久久不卡8050| 91麻豆精品一区二区三区| 国产亚洲人成网站| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美日韩三级一区二区| 一区二区在线看| 一本大道av一区二区在线播放| 国产清纯在线一区二区www| 国产在线国偷精品免费看| 欧美成人免费网站| 国产一区二区福利视频| 久久只精品国产| 国内一区二区在线| 中文成人av在线| eeuss鲁一区二区三区| 中文字幕免费观看一区| 国产成人精品网址| 中文字幕国产精品一区二区| 成人av高清在线| 18成人在线观看| 色欧美片视频在线观看| 樱花影视一区二区| 在线免费亚洲电影| 亚洲1区2区3区4区| 91精品国产综合久久久久久| 日韩av在线发布| 欧美电影免费观看完整版| 九九精品视频在线看| 久久综合久色欧美综合狠狠| 国产精品中文字幕一区二区三区| 亚洲国产精品高清| 91美女片黄在线| 亚洲h动漫在线| 欧美性猛交xxxxxxxx| 日韩电影一区二区三区四区| 欧美sm极限捆绑bd| www.亚洲精品| 亚洲韩国一区二区三区| 51精品久久久久久久蜜臀| 国产综合成人久久大片91| 中文字幕av一区二区三区免费看| 成人av在线电影| 亚洲成av人片在线观看| 欧美精品欧美精品系列| 久久99久久99精品免视看婷婷 | 欧美网站一区二区| 麻豆久久久久久| 国产精品嫩草99a| 日本乱码高清不卡字幕| 日韩在线一区二区三区| 国产色产综合产在线视频| av亚洲精华国产精华精| 亚洲一区二区影院| 制服丝袜亚洲播放| av在线播放不卡| 日韩av电影一区| 国产精品久久看| 欧美一区二区久久| 91玉足脚交白嫩脚丫在线播放|