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

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

?? guiminitool.cpp

?? 方便的串口監(jiān)視工具
?? 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一区二区三区免费野_久草精品视频
99天天综合性| 国产精品免费观看视频| 欧美视频一区在线| 91麻豆免费观看| 99re8在线精品视频免费播放| 成人激情开心网| www.色精品| 91香蕉视频mp4| 在线亚洲欧美专区二区| 91官网在线观看| 欧美日韩一区二区欧美激情| 欧美性猛交xxxx乱大交退制版 | 欧美日韩三级一区| 欧美在线三级电影| 欧美日韩亚洲国产综合| 欧美人体做爰大胆视频| 欧美一区二区三区视频在线| 51精品久久久久久久蜜臀| 日韩一区二区在线免费观看| 久久在线观看免费| 久久精品一区蜜桃臀影院| 国产精品免费人成网站| 1024亚洲合集| 亚洲韩国精品一区| 日本vs亚洲vs韩国一区三区| 毛片av一区二区| 国产69精品久久777的优势| 成人av网址在线| 欧洲av一区二区嗯嗯嗯啊| 91麻豆精品国产91久久久更新时间| 这里是久久伊人| 久久综合九色欧美综合狠狠| 日韩一区有码在线| 视频一区免费在线观看| 国产盗摄视频一区二区三区| 99久久国产综合精品色伊| 欧美视频第二页| 日韩午夜在线观看| 国产精品第五页| 视频一区免费在线观看| 国产精品性做久久久久久| 一本一道久久a久久精品综合蜜臀| 欧美性感一类影片在线播放| 日韩免费视频一区| 中文字幕一区二区三区在线不卡| 亚洲成人1区2区| 国产精品99久久久久久似苏梦涵 | 国产精品综合av一区二区国产馆| 99久久99久久久精品齐齐| 777午夜精品免费视频| 中文字幕不卡在线观看| 日日摸夜夜添夜夜添亚洲女人| 国产成人免费9x9x人网站视频| 欧美日韩一级片网站| 国产情人综合久久777777| 亚洲国产成人tv| 成人午夜在线视频| 日韩精品一区二区在线| 亚洲专区一二三| 成人午夜电影小说| 日韩精品一区二区三区四区| 亚洲人成影院在线观看| 国内久久精品视频| 欧美色男人天堂| 欧美激情一区三区| 另类综合日韩欧美亚洲| 欧美午夜精品久久久| 国产精品欧美久久久久无广告| 奇米色一区二区| 欧美在线综合视频| 国产精品麻豆视频| 国产精品综合视频| 日韩一区二区三区免费看 | 51午夜精品国产| 亚洲欧洲日产国码二区| 韩国精品在线观看| 91麻豆精品国产91久久久 | 丝袜美腿高跟呻吟高潮一区| 成人av高清在线| 国产亚洲精品福利| 美女一区二区视频| 欧美丰满美乳xxx高潮www| 亚洲男同1069视频| 大尺度一区二区| 精品国产a毛片| 无码av免费一区二区三区试看| 91香蕉视频污在线| 国产精品久久久久久久裸模| 韩国av一区二区三区在线观看| 91精品国产色综合久久不卡蜜臀 | 中文字幕一区av| 国产成人精品亚洲777人妖| 欧美成人video| 美女视频一区在线观看| 欧美一区二区三区四区久久| 一区2区3区在线看| 91女神在线视频| 亚洲天堂福利av| bt欧美亚洲午夜电影天堂| 中日韩免费视频中文字幕| 国产高清不卡一区| 久久精品夜色噜噜亚洲a∨| 国产精品18久久久久久久网站| 欧美电视剧免费全集观看| 狂野欧美性猛交blacked| 日韩欧美亚洲一区二区| 日韩黄色在线观看| 91麻豆精品久久久久蜜臀| 亚洲成av人片在线| 制服丝袜亚洲网站| 久久国产精品99精品国产| 2020国产精品| 国产大陆精品国产| 国产精品国产a级| 色综合久久久久| 亚洲成人资源在线| 日韩一级精品视频在线观看| 激情国产一区二区| 国产日韩影视精品| 91在线视频播放地址| 亚洲一线二线三线视频| 91精品国产综合久久香蕉麻豆| 日韩电影一区二区三区| 26uuu另类欧美| 成人av第一页| 亚洲一区影音先锋| 日韩午夜电影av| 激情亚洲综合在线| 国产午夜精品一区二区三区视频| 丁香一区二区三区| 亚洲精品免费在线播放| 69精品人人人人| 国产在线播放一区二区三区| 中文字幕国产一区二区| 色呦呦国产精品| 男人的j进女人的j一区| 久久久精品蜜桃| 一本大道av一区二区在线播放| 亚洲高清一区二区三区| 精品黑人一区二区三区久久| 北条麻妃一区二区三区| 偷拍与自拍一区| 久久久亚洲高清| 欧美亚洲一区二区在线| 久久国产精品99久久久久久老狼| 国产精品久久久久久久久快鸭| 欧美日韩综合一区| 国产乱色国产精品免费视频| 一片黄亚洲嫩模| 久久久国产午夜精品| 在线中文字幕不卡| 国产在线精品免费av| 一区二区在线观看视频| 久久天堂av综合合色蜜桃网| 色综合久久久久| 国产一区欧美日韩| 亚洲综合无码一区二区| 久久综合一区二区| 在线一区二区视频| 国产精品69久久久久水密桃| 亚洲一区二区三区四区在线免费观看| 精品日本一线二线三线不卡 | 国产精品乱人伦| 日韩亚洲欧美在线| 色欧美日韩亚洲| 国产成人亚洲综合a∨婷婷图片| 亚洲h在线观看| 国产精品久久久久久久浪潮网站| 日韩视频在线永久播放| 色婷婷一区二区三区四区| 国产一区二区精品久久| 亚洲国产美国国产综合一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 4438成人网| 欧美亚洲尤物久久| 97精品电影院| 国产成人在线视频网站| 美日韩黄色大片| 三级一区在线视频先锋| 亚洲欧美日韩电影| 国产精品色哟哟网站| 久久美女艺术照精彩视频福利播放| 欧美亚男人的天堂| 91小视频免费观看| 成人av集中营| 盗摄精品av一区二区三区| 韩国成人精品a∨在线观看| 男人操女人的视频在线观看欧美| 亚洲综合999| 亚洲一区二区中文在线| 亚洲美女区一区| 亚洲视频1区2区| 一区二区中文字幕在线| 国产日韩精品一区二区浪潮av| 精品国产麻豆免费人成网站| 欧美一级二级三级乱码| 91.com视频| 欧美一区二区视频观看视频 | 国产精品美女www爽爽爽| 国产女人18水真多18精品一级做 |