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

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

?? guiheaderctrl.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													 //
//-----------------------------------------------------------------------//

#include "stdafx.h"
#include "..\header\GuiHeaderCtrl.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGuiHeaderCtrl

CGuiHeaderCtrl::CGuiHeaderCtrl()
{
	m_clrFace= ::GetSysColor(COLOR_3DFACE);
	m_clrShadow= ::GetSysColor(COLOR_BTNSHADOW);
	m_clrLight= ::GetSysColor(COLOR_BTNHIGHLIGHT);
	m_nNumbottomSelect=-1;
	m_bSentido=TRUE;
}

CGuiHeaderCtrl::~CGuiHeaderCtrl()
{
}


BEGIN_MESSAGE_MAP(CGuiHeaderCtrl, CHeaderCtrl)
	//{{AFX_MSG_MAP(CGuiHeaderCtrl)
	ON_WM_CREATE()
	ON_WM_PAINT()
	ON_WM_WINDOWPOSCHANGED()
	ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGuiHeaderCtrl message handlers

//***************************************************************************
void CGuiHeaderCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
	CDC		*pDC	=	CDC::FromHandle(lpDrawItemStruct->hDC);
	CRect	rcitem	=	lpDrawItemStruct->rcItem;
	UINT	uState	=	lpDrawItemStruct->itemState;
	int     nItemID =   lpDrawItemStruct->itemID;
	CBrush	m_brush;
	CString m_caption;
	CSize	siImg=CSize(0,0);
	TCHAR caption[256];
	IMAGEINFO pImageInfo;
	int OldMode=pDC->SetBkMode(TRANSPARENT);
	m_brush.CreateSysColorBrush(COLOR_3DFACE);
	pDC->FillRect(rcitem,&m_brush);
	HDITEM hdi;
	hdi.mask = HDI_TEXT | HDI_FORMAT|HDI_IMAGE| HDI_ORDER;
	hdi.pszText = caption;
	hdi.cchTextMax = 255;
	GetItem( nItemID, &hdi );
	//---------------------------------------------------------
	//se mueve la imagen para dar la sensacion
	//de seleccion del item
	//---------------------------------------------------------
	if (uState == ODS_SELECTED) 
	{
		rcitem.left+=1;
		rcitem.top+=1;
	}

	if (m_nNumbottomSelect==nItemID)
	{
		DrawArrow(pDC,rcitem,m_bSentido);
		rcitem.right-=12;
	}
	
	if (hdi.iImage > -1)
	{
		m_img.GetImageInfo(hdi.iImage,&pImageInfo);
		CRect rcima =pImageInfo.rcImage;
		siImg=CSize(rcima.Width(),rcima.Height());
		CPoint pti(rcitem.left+2,rcitem.top+1);
		m_img.Draw(pDC, hdi.iImage, pti, ILD_TRANSPARENT);
	}
	if (strlen(caption) > 0)
		{
			CRect m_rctext=rcitem;
			m_rctext.left+=siImg.cx+4;
			m_rctext.bottom-=2;
			DrawTextExt(caption,pDC,&m_rctext,DT_SINGLELINE|DT_BOTTOM);
			
		}
	pDC->SetBkMode(OldMode);

	
}

//**********************************************************************************
void CGuiHeaderCtrl::DrawTextExt(CString Cad,CDC* pDC,CRect* rc,UINT nFlags)
{
	CString m_cadBreak=Cad;
	int c=0;
	int cont=m_cadBreak.GetLength();
	CSize coor=pDC->GetTextExtent(m_cadBreak,m_cadBreak.GetLength());
	if (coor.cx > rc->Width()-1)
	{
		while(cont > 1 )
		{
			CString m_scadtemp=m_cadBreak+"...";
			coor=pDC->GetTextExtent(m_scadtemp,m_scadtemp.GetLength());
			if(coor.cx > rc->Width())
				m_cadBreak=m_cadBreak.Left(m_cadBreak.GetLength()-1);
			else
				break;
			cont--;
		}
		m_cadBreak+=_T("...");
		rc->right+=3;
	}
	pDC->DrawText(m_cadBreak,rc,nFlags);

}

//********************************************************************************
void CGuiHeaderCtrl::DrawArrow(CDC* pDC,CRect rc,BOOL bUp)
{
	CPen cp(PS_SOLID,1, m_clrFace);
	CPen cps(PS_SOLID,1, m_clrShadow);
	CPen cpw(PS_SOLID,1, m_clrLight);
	CPen *pOld;
	
	rc.left=rc.right-12;
	rc.right=rc.left+8;
	rc.bottom=rc.top+12;
	rc.top+=2;	
	int m_mitad=rc.left+4;
	
	if (bUp == TRUE)
	{
			//linea izquierda
			pOld=pDC->SelectObject(&cps);
			pDC->MoveTo(rc.left,rc.bottom);
			pDC->LineTo(m_mitad,rc.top);
			//linea derecha
			pDC->SelectObject(&cpw);
			pDC->MoveTo(rc.right,rc.bottom);
			pDC->LineTo(m_mitad,rc.top);
			//linea de abajo
			pDC->MoveTo(rc.left,rc.bottom);
			pDC->LineTo(rc.right,rc.bottom);
	}
	else
	{
			rc.bottom=rc.top+12;
			rc.top+=4;	
			//linea izquierda
			pOld=pDC->SelectObject(&cps);
			pDC->MoveTo(rc.left,rc.top);
			pDC->LineTo(m_mitad,rc.bottom);
			//linea superior
			pDC->MoveTo(rc.left,rc.top);
			pDC->LineTo(rc.right,rc.top);
			//linea derecha
				pDC->SelectObject(&cpw);
			pDC->MoveTo(rc.right,rc.top);
			pDC->LineTo(m_mitad,rc.bottom);

	}

	pDC->SelectObject(pOld);
}

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

void CGuiHeaderCtrl::DelImageCol(int icol,int img)
{
	HDITEM hdi;
	GetItem(icol,&hdi);
	hdi.iImage=-1;
	hdi.fmt |=  HDF_IMAGE;
	hdi.mask |= HDI_IMAGE | HDI_FORMAT;
	SetItem(icol,&hdi);
}

//*********************************************************************
void CGuiHeaderCtrl::SetImageCol(int icol,int img)
{
	HDITEM hdi;
	GetItem(icol,&hdi);
	hdi.iImage=img;
	hdi.fmt |=  HDF_IMAGE;
	hdi.mask |= HDI_IMAGE | HDI_FORMAT;
	SetItem(icol,&hdi);
}

//********************************************************************
int CGuiHeaderCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CHeaderCtrl::OnCreate(lpCreateStruct) == -1)
		return -1;
	m_pParentWnd = CWnd::FromHandle(lpCreateStruct->hwndParent);
	ASSERT(m_pParentWnd);

	return 0;
}

//********************************************************************
void CGuiHeaderCtrl::PreSubclassWindow() 
{
	m_pParentWnd = GetParent();
	ASSERT(m_pParentWnd);
	CHeaderCtrl::PreSubclassWindow();
	ClearImages();
	ReDraw(); 
}

//********************************************************************
void CGuiHeaderCtrl::ReDraw() 
{
	int iNumItems=GetItemCount();
	HDITEM m_hditems;
	m_hditems.fmt  |= HDF_OWNERDRAW;
	for (int i =0; i < iNumItems; i++)
		SetItem(i,&m_hditems);

}

//*********************************************************************
void CGuiHeaderCtrl::ClearImages()
{
	HDITEM m_hditems;
	m_hditems.mask |=HDI_FORMAT|HDI_IMAGE;
	int iNumItems=GetItemCount();
	for (int i =0; i < iNumItems; i++)
	{
		m_hditems.iImage=-1;
		SetItem(i,&m_hditems);
	}

}

//********************************************************************
void CGuiHeaderCtrl::OnPaint() 
{
	
	
	CPaintDC	dc(this); // device context for painting
	CDC			MemDC;
	CBitmap		m_BitmapMemDC;
	CRect		rcClient;
	CRect		rcWin;
	CBrush		m_brush;
	//******************************************
	GetWindowRect( &rcWin);
	GetClientRect( &rcClient );
	MemDC.CreateCompatibleDC(&dc);
	m_BitmapMemDC.CreateCompatibleBitmap(&dc,
				  rcClient.Width(),rcClient.Height());	

	CBitmap* m_bitmapOld=MemDC.SelectObject(&m_BitmapMemDC);
	m_brush.CreateSysColorBrush(COLOR_3DFACE);
	MemDC.FillRect(rcClient,&m_brush); //evita el horrible color negro
	//*****************************************************
	CWnd::DefWindowProc( WM_PAINT, (WPARAM)MemDC.m_hDC, 0 );	
	//*****************************************************
	ScreenToClient(rcWin);
	BiselaBoton(rcWin,&MemDC);
	dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&MemDC,
		      rcClient.left,rcClient.top,SRCCOPY);
	MemDC.SelectObject(m_bitmapOld);
	m_BitmapMemDC.DeleteObject();
	MemDC.DeleteDC();

}

//************************************************************************
void CGuiHeaderCtrl::BiselaBoton(CRect rcWin,CDC* pDC)
{
	CPen cp(PS_SOLID,1, m_clrFace);
	CPen cps(PS_SOLID,1, m_clrShadow);
	CPen cpw(PS_SOLID,1, m_clrLight);

	//***************************************************
	pDC->Draw3dRect(rcWin,m_clrLight,m_clrShadow);
	rcWin.DeflateRect(1,1);
	pDC->Draw3dRect(rcWin,m_clrFace,m_clrFace);
	//***************************************************

	CPen* cpold=pDC->SelectObject(&cp);	
	int iNumItems=GetItemCount();
	int iContx=0;
	HDITEM m_hditems;
	
	for (int i =0; i < iNumItems; i++)
	{
		CRect recItem;
		GetItem(i,&m_hditems);
		GetItemRect(i, recItem);
		iContx+=recItem.Width();
		//quitamos todas las lineas
		recItem.DeflateRect(1,1);
		pDC->SelectObject(&cp);
		pDC->MoveTo(iContx-2,rcWin.top+1);
		pDC->LineTo(iContx-2,rcWin.bottom-1);
		pDC->MoveTo(iContx-1,rcWin.top+1);
		pDC->LineTo(iContx-1,rcWin.bottom-1);
		pDC->MoveTo(iContx,rcWin.top+1);
		pDC->LineTo(iContx,rcWin.bottom-1);
		pDC->MoveTo(iContx+1,rcWin.top+1);
		pDC->LineTo(iContx+1,rcWin.bottom-1);
		//ponemos dos para dar el efecto
		pDC->SelectObject(&cps);
		pDC->MoveTo(iContx-1,rcWin.top+2);
		pDC->LineTo(iContx-1,rcWin.bottom-2);
		pDC->SelectObject(&cpw);
		pDC->MoveTo(iContx,rcWin.top+2);
		pDC->LineTo(iContx,rcWin.bottom-2);
	
	}
	pDC->SelectObject(cpold);

}

//*********************************************************************
void CGuiHeaderCtrl::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) 
{
	CHeaderCtrl::OnWindowPosChanged(lpwndpos);
	Invalidate();
	UpdateWindow();
	ReDraw();

}

//*********************************************************************************
BOOL CGuiHeaderCtrl::OnEraseBkgnd(CDC* pDC) 
{
	return TRUE;
}

//*********************************************************************************
void CGuiHeaderCtrl::SetImageList(UINT nBitmapID, int cx, int nGrow, COLORREF crMask)
{
	CBitmap cbmp;
	BITMAP bmp;
	m_img.Create(nBitmapID,cx,nGrow,crMask);
	cbmp.LoadBitmap(nBitmapID);
	cbmp.GetBitmap(&bmp);
	m_img.Add(&cbmp,crMask);
	m_sizeImag=CSize(cx,bmp.bmHeight);	
	
}

int CGuiHeaderCtrl::GetSortColumn(BOOL* bSortCol )
{
	*bSortCol =m_bSentido;
	return m_nNumbottomSelect;

}

void CGuiHeaderCtrl::SetSortColumn(int nCol,BOOL sentido)
{
	m_nNumbottomSelect	=nCol;
	m_bSentido=sentido;
	Invalidate();
	UpdateWindow();
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级欧美三级| 日韩一级完整毛片| 三级一区在线视频先锋| 久久综合色8888| 一本色道久久综合狠狠躁的推荐| 蜜臀av国产精品久久久久| 中文字幕在线免费不卡| 日韩一区二区在线观看视频| 日本精品一区二区三区高清| 国产精品一区二区你懂的| 午夜久久久久久| 中文字幕在线观看一区| 26uuu精品一区二区| 欧美亚洲日本国产| 成人三级在线视频| 麻豆视频观看网址久久| 亚洲午夜影视影院在线观看| 中文字幕国产精品一区二区| 欧美xxx久久| 欧美老女人在线| 91香蕉视频污| 国产成都精品91一区二区三| 黄一区二区三区| 日韩国产欧美三级| 亚洲成人免费av| 亚洲欧美经典视频| 国产精品国产馆在线真实露脸| 精品国产一区二区亚洲人成毛片| 欧美日韩精品一区二区三区四区| 99久久婷婷国产综合精品| 国产精品99久久久| 国产一区二区三区av电影| 免费成人小视频| 婷婷一区二区三区| 亚洲国产精品人人做人人爽| 亚洲欧美另类小说| 综合色天天鬼久久鬼色| 中文字幕精品三区| 国产精品美女一区二区| 国产日韩欧美在线一区| 国产校园另类小说区| 久久久久青草大香线综合精品| 日韩一区二区在线观看视频播放| 337p亚洲精品色噜噜噜| 欧美一区二区女人| 日韩一区二区在线免费观看| 日韩一卡二卡三卡| 久久综合久久鬼色| 久久综合色综合88| 久久精品亚洲精品国产欧美kt∨| 精品欧美乱码久久久久久1区2区| 日韩精品资源二区在线| 精品毛片乱码1区2区3区| www久久精品| 久久综合久久鬼色| 国产精品国产三级国产aⅴ入口 | 成人午夜激情视频| 成人一区二区三区中文字幕| 成人av手机在线观看| 91在线观看免费视频| 在线亚洲一区二区| 欧美精品日韩一本| 日韩免费视频一区二区| 久久午夜电影网| 国产精品国产三级国产aⅴ中文 | 一区二区激情视频| 亚洲第一av色| 六月丁香婷婷久久| 成人精品视频一区二区三区尤物| av在线这里只有精品| 欧美日韩午夜在线| 久久免费精品国产久精品久久久久| 久久久五月婷婷| 亚洲精品第1页| 免费成人av资源网| 国产成人午夜精品5599| 色综合天天综合网国产成人综合天 | 欧美日韩国产精品成人| 欧美va亚洲va在线观看蝴蝶网| 久久综合久久综合亚洲| 《视频一区视频二区| 午夜私人影院久久久久| 国产一区二区三区蝌蚪| 91精品办公室少妇高潮对白| 日韩午夜在线影院| 亚洲欧美日韩在线| 精品亚洲成a人| 日本韩国一区二区| 欧美精品一区二区三区蜜桃| 亚洲精品欧美专区| 久久成人麻豆午夜电影| 色综合色狠狠综合色| 精品日韩一区二区| 一区二区三区国产精品| 国产精品伊人色| 欧美日韩精品三区| 国产精品第13页| 理论片日本一区| 色av成人天堂桃色av| 26uuu久久综合| 亚洲6080在线| bt欧美亚洲午夜电影天堂| 日韩三级视频中文字幕| 亚洲精品videosex极品| 国产精品一卡二| 欧美日韩国产在线播放网站| 国产精品久久久久久久久免费丝袜 | 国产精品污网站| 日本不卡视频在线| 欧美在线小视频| 日本一区二区成人在线| 美女诱惑一区二区| 欧美系列在线观看| 亚洲视频在线一区观看| 国产在线视频一区二区三区| 欧美美女直播网站| 亚洲精品免费在线观看| 国产福利视频一区二区三区| 日韩无一区二区| 亚洲成人一区在线| 欧洲一区在线电影| 亚洲啪啪综合av一区二区三区| 国产露脸91国语对白| 日韩精品在线一区| 日本女优在线视频一区二区| 在线观看亚洲专区| 亚洲精品国产品国语在线app| 国产999精品久久久久久| 欧美精品一区二区高清在线观看| 视频在线观看一区二区三区| 欧美伊人久久久久久久久影院 | 成人18视频在线播放| 久久综合九色综合欧美98 | 午夜精品一区二区三区免费视频| 日本高清免费不卡视频| 亚洲裸体xxx| 91看片淫黄大片一级在线观看| 国产精品久久久久久久久免费丝袜 | 欧美视频三区在线播放| 亚洲嫩草精品久久| 91污在线观看| 亚洲男同1069视频| 91福利视频在线| 一区二区三区日韩欧美精品| 91视频一区二区| 亚洲人123区| 91久久香蕉国产日韩欧美9色| 亚洲欧美区自拍先锋| 欧美丝袜丝nylons| 日韩精品色哟哟| 欧美α欧美αv大片| 国产99久久久精品| 亚洲欧美怡红院| 91久久精品一区二区三区| 亚洲国产另类精品专区| 日韩一级片在线播放| 国产在线国偷精品产拍免费yy| 精品三级av在线| 大胆欧美人体老妇| 亚洲伦在线观看| 欧美少妇bbb| 久久99国产精品尤物| 国产视频一区二区在线观看| 99久久99久久久精品齐齐| 亚洲午夜久久久| 日韩一区二区麻豆国产| 国产91丝袜在线播放九色| 亚洲欧洲日韩在线| 欧美日韩三级一区二区| 久久精品国产99国产精品| 国产欧美一区视频| 欧美视频三区在线播放| 狠狠色伊人亚洲综合成人| 国产精品美女久久久久aⅴ| 欧亚一区二区三区| 韩国成人在线视频| 亚洲欧美日韩电影| 精品人在线二区三区| 91亚洲精品久久久蜜桃| 蜜乳av一区二区三区| 国产精品久久久久久久裸模| 欧美精品18+| 国产91精品在线观看| 亚洲www啪成人一区二区麻豆| 久久新电视剧免费观看| 在线视频一区二区三| 精品夜夜嗨av一区二区三区| 亚洲伦理在线精品| 久久久久久久久久电影| 欧美日韩中文国产| 粉嫩av一区二区三区粉嫩| 亚洲成a人在线观看| 欧美高清在线视频| 538在线一区二区精品国产| 成人av免费在线播放| 老司机精品视频线观看86 | 亚洲成人精品在线观看| 国产精品理论片在线观看| 日韩欧美国产1| 欧美在线观看你懂的|