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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? guisliderctrl.cpp

?? 該文件包含有C8051單片機(jī)中實(shí)現(xiàn)UART波特率自檢的功能
?? CPP
字號(hào):
//-----------------------------------------------------------------------//
// 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\GuiSliderCtrl.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGuiSliderCtrl

/*
typedef struct tagNMCUSTOMDRAWINFO
	{
		NMHDR hdr;
		DWORD dwDrawStage;
		HDC hdc;
		RECT rc;
		DWORD dwItemSpec;  // this is control specific, but it's how to specify an item.  valid only with CDDS_ITEM bit set
		UINT  uItemState;
		LPARAM lItemlParam;
	} NMCUSTOMDRAW, FAR * LPNMCUSTOMDRAW;

*/



CGuiSliderCtrl::CGuiSliderCtrl()
{
	bSelected=FALSE;
	m_clrGreen=RGB(0,198,0);  //verder
	m_clrOrange=RGB(255,193,111); //no tan naranja
	m_Press=FALSE;
}

CGuiSliderCtrl::~CGuiSliderCtrl()
{
}


BEGIN_MESSAGE_MAP(CGuiSliderCtrl, CSliderCtrl)
	//{{AFX_MSG_MAP(CGuiSliderCtrl)
	ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomdraw)

	ON_WM_MOUSEMOVE()
	ON_WM_TIMER()
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()

	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGuiSliderCtrl message handlers

void CGuiSliderCtrl::OnCustomdraw(NMHDR* pNMHDR, LRESULT* pResult) 
{
	
	LPNMCUSTOMDRAW lpcd = (LPNMCUSTOMDRAW)pNMHDR;
	CDC*	pDC=CDC::FromHandle(lpcd->hdc);
	CRect	rcClient=lpcd->rc;
	UINT	dwItemSpec=lpcd->dwItemSpec;
	DWORD	dwDrawStage=lpcd->dwDrawStage;
	UINT    uItemState=lpcd->uItemState;
	//bSelected= uItemState & CDIS_FOCUS ? TRUE:FALSE;
	//------------------------------------------------
	//aun no se puede pintar el control
	//------------------------------------------------
	if (dwDrawStage == CDDS_PREPAINT)
	{
		*pResult = CDRF_NOTIFYITEMDRAW;         
		return;
	}
	//-----------------------------------------------
	//intentelo ahora
	//-----------------------------------------------
	if (dwDrawStage == CDDS_ITEMPREPAINT)
	{	
		if (dwItemSpec == TBCD_TICS)
		{
			*pResult = CDRF_DODEFAULT;
			return;
		}	
		else if (dwItemSpec ==  TBCD_THUMB)
		{
			*pResult = CDRF_SKIPDEFAULT;

			if (rcClient.Height() > rcClient.Width())
					DrawVThumb(pDC, rcClient);
			else
					DrawHThumb(pDC, rcClient);
			return;
		}
		else if (dwItemSpec == TBCD_CHANNEL)
		{
			*pResult = CDRF_SKIPDEFAULT;
			pDC->Draw3dRect(&rcClient,m_dl.GetRGBPressBXP(),::GetSysColor(COLOR_BTNHIGHLIGHT));
			return;
		}
	}
	
}

void CGuiSliderCtrl::DrawHThumb(CDC* pDC,CRect rcClient)
{
	//------------------------------------------
	//prefiero todo a pulso
	//------------------------------------------
	CPen cpGreen(PS_SOLID,1,m_clrGreen);
	CPen cpOrange(PS_SOLID,1,m_clrOrange);
	CPen cp(PS_SOLID,1,m_dl.GetRGBPressBXP());
	CPen cpFondo(PS_SOLID,1,m_dl.GetRGBFondoXP());
	CPen cpSombra(PS_SOLID,1,RGB(225,225,225));
	CPen cpSombraDark(PS_SOLID,1,RGB(200,200,200));
	CPen* pOld;
	CBrush cb;
	
	//se pinta arriba y luego por la derecha
	//vertice left,top
	pOld=pDC->SelectObject(&cp);
	int nMedio=rcClient.Width()-7;
	//------------------------------------------
	//pintar el fondo estilo  xp
	//------------------------------------------
	rcClient.bottom--;
	CRect m_rectTemp=rcClient;
	m_rectTemp.right-=5;
	cb.CreateSolidBrush(m_dl.GetRGBColorXP());
	pDC->FillRect(&m_rectTemp,&cb);
	//*************************************************
	// -
	pDC->MoveTo(rcClient.left+1,rcClient.top);
	pDC->LineTo(rcClient.left+nMedio,rcClient.top);
	// |
	pDC->MoveTo(rcClient.left,rcClient.top+1);
	pDC->LineTo(rcClient.left,rcClient.bottom);

	// -
	pDC->MoveTo(rcClient.left+1,rcClient.bottom);
	pDC->LineTo(rcClient.left+nMedio,rcClient.bottom);
	//Algo de sombra
	pDC->SelectObject(&cpSombraDark);
	pDC->MoveTo(rcClient.left+1,rcClient.top+1);
	pDC->LineTo(rcClient.left+nMedio,rcClient.top+1);

	pDC->SelectObject(&cpSombra);
	pDC->MoveTo(rcClient.left+1,rcClient.top+2);
	pDC->LineTo(rcClient.left+nMedio,rcClient.top+2);
	pDC->MoveTo(rcClient.left+1,rcClient.bottom-1);
	pDC->LineTo(rcClient.left+nMedio,rcClient.bottom-1);

	//-----------------------------------------------------------
	//se pinta los colores de acuerdo al la seleccion del boton
	//naranja si se selecciona y verde normal, en la parte superior
	//-----------------------------------------------------------
	rcClient.DeflateRect(1,1);
	pDC->SelectObject(bSelected!=TRUE?&cpGreen:&cpOrange);
	for (int i=0; i<3;i++)
	{
		pDC->MoveTo(rcClient.left+i,rcClient.top);
		pDC->LineTo(rcClient.left+i,rcClient.bottom+1);
			
	}
	rcClient.InflateRect(1,1);
	pDC->SelectObject(&cp);
	//-------------------------------------------------------------
	//se pinta la punta
	//-------------------------------------------------------------
	for (int y =0; y<5;y++)
	{
		pDC->SetPixel(rcClient.left+nMedio+y,rcClient.top+y,m_dl.GetRGBPressBXP());
		pDC->SetPixel(rcClient.left+nMedio+y,rcClient.bottom-y,m_dl.GetRGBPressBXP());
	}
	pDC->SetPixel(rcClient.left+nMedio+y,rcClient.bottom-y,m_dl.GetRGBPressBXP());
	
	//pDC->SetPixel(rcClient.right-y,rcClient.top+nMedio+y,m_dl.GetRGBPressBXP());

	//********************************************************
	
	//-----------------------------------------------------------
	//se pinta los colores de acuerdo al la seleccion del boton
	//naranja si se selecciona y verde normal
	//-----------------------------------------------------------
	pDC->SelectObject(bSelected!=TRUE?&cpGreen:&cpOrange);
	
	for (y =0; y<5;y++)
	{
		pDC->SetPixel(rcClient.left+nMedio+y,(rcClient.top+y)+1,
			bSelected!=TRUE?m_clrGreen:m_clrOrange);
		pDC->SetPixel((rcClient.left+nMedio+y),(rcClient.bottom-y)-1,
			bSelected!=TRUE?m_clrGreen:m_clrOrange);
	}

	//-----------------------------------------------------------
	//se pinta sombra a la punta para dar un aspecto mas grueso 
	//al boton
	//-----------------------------------------------------------
	pDC->SelectObject(bSelected!=TRUE?&cpGreen:&cpOrange);
	
	for (y =0; y<4;y++)
	{
		pDC->SetPixel(rcClient.left+nMedio+y,(rcClient.top+y)+2,
			RGB(225,225,225));
		pDC->SetPixel(rcClient.left+nMedio+y,(rcClient.bottom-y)-2,
			RGB(200,200,200));
	}

	pDC->SelectObject(pOld);
		
}




void CGuiSliderCtrl::DrawVThumb(CDC* pDC,CRect rcClient)
{
	//------------------------------------------
	//prefiero todo a pulso
	//------------------------------------------
	CPen cpGreen(PS_SOLID,1,m_clrGreen);
	CPen cpOrange(PS_SOLID,1,m_clrOrange);
	CPen cp(PS_SOLID,1,m_dl.GetRGBPressBXP());
	CPen cpFondo(PS_SOLID,1,m_dl.GetRGBFondoXP());
	CPen cpSombra(PS_SOLID,1,RGB(225,225,225));
	CPen cpSombraDark(PS_SOLID,1,RGB(200,200,200));
	CPen* pOld;
	CBrush cb;
	
	//se pinta arriba y luego por la derecha
	//vertice left,top
	pOld=pDC->SelectObject(&cp);
	int nMedio=rcClient.Height()-7;
	//------------------------------------------
	//pintar el fondo estilo  xp
	//------------------------------------------
	rcClient.right-=1;
	rcClient.bottom++;
	CRect m_rectTemp=rcClient;
	m_rectTemp.bottom-=5;
	m_rectTemp.DeflateRect(1,1);
	cb.CreateSolidBrush(m_dl.GetRGBColorXP());
	pDC->FillRect(&m_rectTemp,&cb);
	//*************************************************
	// -
	pDC->MoveTo(rcClient.left+1,rcClient.top);
	pDC->LineTo(rcClient.right,rcClient.top);
	// |
	pDC->MoveTo(rcClient.left,rcClient.top+1);
	pDC->LineTo(rcClient.left,rcClient.top+nMedio);

	// |
	pDC->MoveTo(rcClient.right,rcClient.top+1);
	pDC->LineTo(rcClient.right,rcClient.top+nMedio);
	//Algo de sombra
	pDC->SelectObject(&cpSombraDark);
	pDC->MoveTo(rcClient.right-1,rcClient.top+1);
	pDC->LineTo(rcClient.right-1,rcClient.top+nMedio+2);

	pDC->SelectObject(&cpSombra);
	pDC->MoveTo(rcClient.right-2,rcClient.top+1);
	pDC->LineTo(rcClient.right-2,rcClient.top+nMedio+2);
	pDC->MoveTo(rcClient.left+1,rcClient.top+1);
	pDC->LineTo(rcClient.left+1,rcClient.top+nMedio);

	//-----------------------------------------------------------
	//se pinta los colores de acuerdo al la seleccion del boton
	//naranja si se selecciona y verde normal, en la parte superior
	//-----------------------------------------------------------
	rcClient.DeflateRect(1,1);
	pDC->SelectObject(bSelected!=TRUE?&cpGreen:&cpOrange);
	for (int i=0; i<3;i++)
	{
		pDC->MoveTo(rcClient.left,rcClient.top+i);
		pDC->LineTo(rcClient.right+1,rcClient.top+i);
			
	}
	rcClient.InflateRect(1,1);
	pDC->SelectObject(&cp);
	//-------------------------------------------------------------
	//se pinta la punta
	//-------------------------------------------------------------
	for (int y =0; y<5;y++)
	{
		pDC->SetPixel(rcClient.left+y,rcClient.top+nMedio+y,m_dl.GetRGBPressBXP());
		pDC->SetPixel(rcClient.right-y,rcClient.top+nMedio+y,m_dl.GetRGBPressBXP());
	}
	pDC->SetPixel(rcClient.right-y,rcClient.top+nMedio+y,m_dl.GetRGBPressBXP());
	//********************************************************
	
	//-----------------------------------------------------------
	//se pinta los colores de acuerdo al la seleccion del boton
	//naranja si se selecciona y verde normal
	//-----------------------------------------------------------
	pDC->SelectObject(bSelected!=TRUE?&cpGreen:&cpOrange);
	
	for (y =0; y<5;y++)
	{
		pDC->SetPixel((rcClient.left+y)+1,rcClient.top+nMedio+y,
			bSelected!=TRUE?m_clrGreen:m_clrOrange);
		pDC->SetPixel((rcClient.right-y)-1,(rcClient.top+nMedio+y),
			bSelected!=TRUE?m_clrGreen:m_clrOrange);
	}

	//-----------------------------------------------------------
	//se pinta sombra a la punta para dar un aspecto mas grueso 
	//al boton
	//-----------------------------------------------------------
	pDC->SelectObject(bSelected!=TRUE?&cpGreen:&cpOrange);
	
	for (y =0; y<4;y++)
	{
		pDC->SetPixel((rcClient.left+y)+2,rcClient.top+nMedio+y,
			RGB(225,225,225));
		pDC->SetPixel((rcClient.right-y)-2,rcClient.top+nMedio+y,
			RGB(200,200,200));
	}

	pDC->SelectObject(pOld);

	//uff!!!, que rutina tan aburridora de hacer!!!! 
}


void CGuiSliderCtrl::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if (bSelected==TRUE)
		return;
	CRect rc;
	GetClientRect(&rc);
	if (rc.PtInRect(point))
	{
		bSelected=TRUE;
		Invalidate();
		UpdateWindow();
		SetTimer(1,100,NULL);
	}
	CSliderCtrl::OnMouseMove(nFlags, point);
}


void CGuiSliderCtrl::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CRect m_rect;
	CPoint pt(GetMessagePos());
	ScreenToClient(&pt);
	GetClientRect(m_rect);
	if (!m_rect.PtInRect(pt))
	{
		bSelected=FALSE;
		Invalidate();
		UpdateWindow();
		KillTimer(1);
	}
	CSliderCtrl::OnTimer(nIDEvent);
}

void CGuiSliderCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if (bSelected==FALSE)
	{
		bSelected=TRUE;
		Invalidate();
		UpdateWindow();
	}
	CSliderCtrl::OnLButtonDown(nFlags, point);
}

void CGuiSliderCtrl::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	bSelected=FALSE;
	Invalidate();
	UpdateWindow();
	KillTimer(1);
	CSliderCtrl::OnLButtonUp(nFlags, point);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美撒尿777hd撒尿| 午夜欧美视频在线观看| 成人综合日日夜夜| 国产欧美日产一区| www.亚洲色图| 亚洲综合区在线| 制服.丝袜.亚洲.另类.中文| 日韩在线播放一区二区| 91精品国产福利| 精品一区二区日韩| 国产精品蜜臀在线观看| 色哟哟一区二区在线观看| 午夜精品爽啪视频| 欧美精品一区二区在线播放| 高清在线观看日韩| 亚洲最新在线观看| www精品美女久久久tv| 99久久99久久免费精品蜜臀| 亚洲第一激情av| 久久一区二区视频| 色婷婷综合久久久| 理论电影国产精品| **欧美大码日韩| 91精品国产综合久久精品麻豆| 九九视频精品免费| 亚洲欧美日韩一区二区| 日韩视频免费直播| 91影视在线播放| 青草国产精品久久久久久| 国产精品污网站| 91精品国产综合久久精品 | 欧美精品一区二区三区一线天视频| 国产成人精品免费| 日韩激情av在线| 国产精品久久久久久福利一牛影视| 欧美日韩中文一区| 高清在线观看日韩| 免费成人结看片| 亚洲摸摸操操av| 欧美精品一区二区三区在线播放| 欧美日韩一二三| 成人免费视频视频| 韩国精品主播一区二区在线观看| 亚洲一区二区三区视频在线| 久久久99精品免费观看不卡| 欧美精品免费视频| 色域天天综合网| 国产精品一区三区| 日韩av一级电影| 亚洲国产三级在线| 国产精品成人在线观看| 久久综合久久综合久久| 欧美猛男超大videosgay| 99re在线视频这里只有精品| 激情综合网最新| 免费在线一区观看| 五月天丁香久久| 亚洲自拍另类综合| 亚洲你懂的在线视频| 中文字幕中文乱码欧美一区二区| 日韩欧美电影在线| 3751色影院一区二区三区| 欧洲精品一区二区三区在线观看| 成人在线视频一区| 国产激情一区二区三区四区| 美国十次了思思久久精品导航| 亚洲第一狼人社区| 亚洲国产视频直播| 亚洲国产三级在线| 亚洲国产视频一区二区| 亚洲一区二区三区四区在线免费观看| 欧美激情在线一区二区三区| 26uuu亚洲综合色欧美| 欧美一区二区三区在线观看视频 | 日韩国产高清在线| 日产欧产美韩系列久久99| 亚洲成人一区在线| 午夜a成v人精品| 日韩和欧美一区二区三区| 香蕉久久夜色精品国产使用方法| 亚洲一区二区三区不卡国产欧美| 亚洲一区二区三区在线播放| 亚洲国产成人高清精品| 日韩电影免费在线| 麻豆一区二区三区| 国产一区二区电影| 成人一区二区三区视频| 97久久精品人人澡人人爽| 色综合久久综合中文综合网| 色成人在线视频| 在线成人免费视频| 欧美一区二区大片| 国产无人区一区二区三区| 国产精品理论片在线观看| 亚洲人成伊人成综合网小说| 亚洲最大成人网4388xx| 首页国产欧美久久| 精品伊人久久久久7777人| 国产福利一区二区| gogogo免费视频观看亚洲一| 欧美亚洲动漫精品| 精品三级av在线| 日本一区二区成人| 亚洲欧美激情一区二区| 亚洲观看高清完整版在线观看| 蜜臀久久99精品久久久久宅男| 精品一区免费av| 91女厕偷拍女厕偷拍高清| 欧美美女直播网站| 中文字幕精品—区二区四季| 亚洲一区二区欧美日韩 | bt欧美亚洲午夜电影天堂| 91久久精品国产91性色tv| 日韩欧美的一区| 亚洲欧美激情小说另类| 日本不卡123| 成人免费三级在线| 在线播放中文字幕一区| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲天堂av老司机| 天堂影院一区二区| 成人av小说网| 91精品国产综合久久久久| 中文一区在线播放| 日韩av电影天堂| 91亚洲精品久久久蜜桃| 欧美一区二区二区| 亚洲精品老司机| 国产成人综合视频| 欧美一区二区三区白人| 亚洲视频小说图片| 激情综合网激情| 欧美日韩精品二区第二页| 欧美韩日一区二区三区四区| 日韩电影在线免费| 欧美中文字幕一二三区视频| 国产精品不卡在线| 久久精品国产77777蜜臀| 在线亚洲免费视频| 国产精品系列在线| 久久国产精品区| 欧美日韩成人一区二区| 亚洲乱码国产乱码精品精的特点| 国产一区二区三区免费观看| 欧美一级二级在线观看| 亚洲黄色性网站| 不卡一区二区三区四区| 久久中文娱乐网| 日韩av电影免费观看高清完整版| 91色.com| 亚洲视频一二区| 99九九99九九九视频精品| 国产色一区二区| 韩国理伦片一区二区三区在线播放 | 爽爽淫人综合网网站| 色狠狠一区二区三区香蕉| ...xxx性欧美| 成人a级免费电影| 国产免费成人在线视频| 国产精品一二三在| 久久婷婷色综合| 国产美女在线观看一区| ww久久中文字幕| 国产一区二区久久| 久久久精品一品道一区| 国产一区二区三区免费| 国产午夜精品一区二区三区视频 | 亚洲女人****多毛耸耸8| 99riav久久精品riav| 亚洲乱码中文字幕综合| 色婷婷精品大在线视频| 亚洲卡通动漫在线| 色呦呦国产精品| 亚洲伊人色欲综合网| 欧洲生活片亚洲生活在线观看| 亚洲免费观看高清完整| 在线亚洲一区观看| 亚洲地区一二三色| 欧美一级搡bbbb搡bbbb| 秋霞国产午夜精品免费视频| 日韩欧美在线不卡| 国内精品久久久久影院薰衣草| 久久综合成人精品亚洲另类欧美 | 99re亚洲国产精品| 亚洲你懂的在线视频| 欧美乱熟臀69xxxxxx| 免费的国产精品| 国产精品视频免费| 色噜噜狠狠成人中文综合| 偷拍与自拍一区| 久久久久久99精品| 99精品视频免费在线观看| 亚洲线精品一区二区三区| 欧美一卡在线观看| 国产91清纯白嫩初高中在线观看| 中文字幕在线播放不卡一区| 欧美网站大全在线观看| 久久se精品一区精品二区| 国产日韩欧美综合一区| 欧美这里有精品|