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

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

?? btnst.cpp

?? 視頻芯片管理系統(tǒng)
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
#include "stdafx.h"
#include "BtnST.h"

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

/////////////////////////////////////////////////////////////////////////////
// CButtonST

CButtonST::CButtonST()
{
	m_bMouseOnButton = FALSE;

	FreeResources(FALSE);

	// Default type is "flat" button
	//m_bIsFlat = TRUE; 
	m_bIsFlat = FALSE; 
  
	// By default draw border in "flat" button 
	m_bDrawBorder = TRUE; 
  
	// By default icon is aligned horizontally
	m_nAlign = ST_ALIGN_HORIZ; 
  
	// By default show the text button
	m_bShowText = TRUE; 
  
	// By default, for "flat" button, don't draw the focus rect
	m_bDrawFlatFocus = FALSE;

	// By default the button is not the default button
	m_bIsDefault = FALSE;

	// By default the button is not a checkbox
	m_bIsCheckBox = FALSE;
	m_nCheck = 0;

	// Set default colors
	SetDefaultColors(FALSE);

	// No tooltip created
	m_ToolTip.m_hWnd = NULL;

	// Do not draw as a transparent button
	m_bDrawTransparent = FALSE;
	m_pbmpOldBk = NULL;

	// No URL defined
	::ZeroMemory(&m_szURL, sizeof(m_szURL));

	// No cursor defined
	m_hCursor = NULL;	// Fix by kawasaki@us.dnttm.ro

	// No autorepeat
	m_bAutoRepeat = FALSE;
	m_hWndAutoRepeat = NULL;
	m_nMsgAutoRepeat = WM_APP;
	m_dwPeriodAutoRepeat = 100;
} // End of CButtonST


CButtonST::~CButtonST()
{
	// Restore old bitmap (if any)
	if (m_dcBk.m_hDC != NULL && m_pbmpOldBk != NULL)
	{
		m_dcBk.SelectObject(m_pbmpOldBk);
	}

	FreeResources();

	// Destroy the cursor (if any)
	if (m_hCursor != NULL) ::DestroyCursor(m_hCursor);
} // End of ~CButtonST


BEGIN_MESSAGE_MAP(CButtonST, CButton)
    //{{AFX_MSG_MAP(CButtonST)
	ON_WM_CAPTURECHANGED()
	ON_WM_SETCURSOR()
	ON_WM_KILLFOCUS()
	ON_WM_MOUSEMOVE()
	ON_WM_SYSCOLORCHANGE()
	ON_CONTROL_REFLECT_EX(BN_CLICKED, OnClicked)
	ON_WM_ACTIVATE()
	ON_WM_ENABLE()
	ON_WM_CANCELMODE()
	ON_WM_CTLCOLOR_REFLECT()
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


DWORD CButtonST::SetIcon(int nIconInId, int nIconOutId)
{
	HICON		hIconIn;
	HICON		hIconOut;
	HINSTANCE	hInstResource;

	// Find correct resource handle
	hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(nIconInId), RT_GROUP_ICON);

	// Set icon when the mouse is IN the button
	hIconIn = (HICON)::LoadImage(hInstResource, MAKEINTRESOURCE(nIconInId), IMAGE_ICON, 0, 0, 0);
  	// Set icon when the mouse is OUT the button
	hIconOut = (HICON)::LoadImage(hInstResource, MAKEINTRESOURCE(nIconOutId), IMAGE_ICON, 0, 0, 0);

	return SetIcon(hIconIn, hIconOut);
} // End of SetIcon

DWORD CButtonST::SetIcon(HICON hIconIn, HICON hIconOut)
{
	BOOL		bRetValue;
	ICONINFO	ii;

	// Free any loaded resource
	FreeResources();

	if (hIconIn != NULL)
	{
		m_csIcons[0].hIcon = hIconIn;

		// Get icon dimension
		ZeroMemory(&ii, sizeof(ICONINFO));
		bRetValue = ::GetIconInfo(hIconIn, &ii);
		if (bRetValue == FALSE)
		{
			FreeResources();
			return BTNST_INVALIDRESOURCE;
		} // if

		m_csIcons[0].dwWidth	= (DWORD)(ii.xHotspot * 2);
		m_csIcons[0].dwHeight	= (DWORD)(ii.yHotspot * 2);
		::DeleteObject(ii.hbmMask);
		::DeleteObject(ii.hbmColor);

		if (hIconOut != NULL)
		{
			m_csIcons[1].hIcon = hIconOut;

			// Get icon dimension
			ZeroMemory(&ii, sizeof(ICONINFO));
			bRetValue = ::GetIconInfo(hIconOut, &ii);
			if (bRetValue == FALSE)
			{
				FreeResources();
				return BTNST_INVALIDRESOURCE;
			} // if

			m_csIcons[1].dwWidth	= (DWORD)(ii.xHotspot * 2);
			m_csIcons[1].dwHeight	= (DWORD)(ii.yHotspot * 2);
			::DeleteObject(ii.hbmMask);
			::DeleteObject(ii.hbmColor);
		} // if
	} // if

	RedrawWindow();

	return BTNST_OK;
} // End of SetIcon

BOOL CButtonST::SetBtnCursor(int nCursorId)
{
	HINSTANCE hInstResource;
	// Destroy any previous cursor
	if (m_hCursor != NULL) ::DestroyCursor(m_hCursor);
	m_hCursor = NULL;

	// If we want a cursor
	if (nCursorId != NULL)
	{
		hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(nCursorId),
											RT_GROUP_CURSOR);
		// Load icon resource
		m_hCursor = (HCURSOR)::LoadImage(hInstResource/*AfxGetApp()->m_hInstance*/, MAKEINTRESOURCE(nCursorId), IMAGE_CURSOR, 0, 0, 0);
		// If something wrong then return FALSE
		if (m_hCursor == NULL) return FALSE;
	}

	return TRUE;
} // End of SetBtnCursor


void CButtonST::SetFlat(BOOL bState)
{
	m_bIsFlat = bState;
	Invalidate();
} // End of SetFlat


BOOL CButtonST::GetFlat()
{
	return m_bIsFlat;
} // End of GetFlat


void CButtonST::SetAlign(int nAlign)
{
	switch (nAlign)
	{    
		case ST_ALIGN_HORIZ:
		case ST_ALIGN_HORIZ_RIGHT:
		case ST_ALIGN_VERT:
			m_nAlign = nAlign;
			break;
	}
	Invalidate();
} // End of SetAlign


int CButtonST::GetAlign()
{
	return m_nAlign;
} // End of GetAlign


void CButtonST::DrawBorder(BOOL bEnable)
{
	m_bDrawBorder = bEnable;
} // End of DrawBorder

void CButtonST::SetShowText(BOOL bShow)
{
	m_bShowText = bShow;
	Invalidate();
} // End of SetShowText


BOOL CButtonST::GetShowText()
{
	return m_bShowText;
} // End of GetShowText


void CButtonST::OnMouseMove(UINT nFlags, CPoint point)
{
	CWnd* pWnd;  // Finestra attiva
	CWnd* pParent; // Finestra che contiene il bottone

	CButton::OnMouseMove(nFlags, point);

	// If the mouse enter the button with the left button pressed
	// then do nothing
	if (nFlags & MK_LBUTTON && m_bMouseOnButton == FALSE) return;

	// If our button is not flat then do nothing
	if (m_bIsFlat == FALSE) return;

	pWnd = GetActiveWindow();
	pParent = GetOwner();

	if ((GetCapture() != this) && 
		(
#ifndef ST_LIKEIE
		pWnd != NULL && 
#endif
		pParent != NULL)) 
	{
		m_bMouseOnButton = TRUE;
		//SetFocus();	// Thanks Ralph!
		SetCapture();
		Invalidate();
	}
	else
	{
		/*
		CRect rc;
		GetClientRect(&rc);
		if (!rc.PtInRect(point))
		{
		*/

		POINT p2 = point;
		ClientToScreen(&p2);
		CWnd* wndUnderMouse = WindowFromPoint(p2);
//		if (wndUnderMouse != this)
		if (wndUnderMouse && wndUnderMouse->m_hWnd != this->m_hWnd)
		{
			// Redraw only if mouse goes out
			if (m_bMouseOnButton == TRUE)
			{
				m_bMouseOnButton = FALSE;
				Invalidate();
			}
			// If user is NOT pressing left button then release capture!
			if (!(nFlags & MK_LBUTTON)) ReleaseCapture();
		}
	}
} // End of OnMouseMove

void CButtonST::OnKillFocus(CWnd * pNewWnd)
{
	CButton::OnKillFocus(pNewWnd);

	CancelHover();
} // End of OnKillFocus

void CButtonST::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CButton::OnLButtonDown(nFlags, point);

	if (m_bAutoRepeat == TRUE)
	{
		MSG		csMsg;
		int		nButtonID;
		HWND	hWndParent;

		nButtonID = GetDlgCtrlID();
		hWndParent = GetParent()->GetSafeHwnd();
		while(PeekMessage(&csMsg, m_hWnd, WM_LBUTTONUP, WM_LBUTTONUP, PM_REMOVE) == FALSE)
		{
			::SendMessage(hWndParent, WM_COMMAND, MAKEWPARAM((WORD)nButtonID, BN_CLICKED), (LPARAM)m_hWnd);
			::Sleep(m_dwPeriodAutoRepeat);
		}
		SendMessage(WM_LBUTTONUP);
	} // if
} // End of OnLButtonDown

void CButtonST::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
{
	CButton::OnActivate(nState, pWndOther, bMinimized);
	
	if (nState == WA_INACTIVE)	CancelHover();
} // End of OnActivate

void CButtonST::OnEnable(BOOL bEnable) 
{
	CButton::OnEnable(bEnable);
	
	if (bEnable == FALSE)	CancelHover();
} // End of OnEnable

void CButtonST::OnCancelMode() 
{
	CButton::OnCancelMode();
		
	CancelHover();
} // End of OnCancelMode

void CButtonST::OnCaptureChanged(CWnd *pWnd) 
{
	if (m_bMouseOnButton == TRUE)
	{
		ReleaseCapture();
		Invalidate();
	}

	// Call base message handler
	CButton::OnCaptureChanged(pWnd);
} // End of OnCaptureChanged


void CButtonST::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
	CDC* pDC = CDC::FromHandle(lpDIS->hDC);

	CPen *pOldPen;
	BOOL	bIsPressed;

	// Checkbox or Radiobutton style ?
	if (m_bIsCheckBox == TRUE)
	{
		bIsPressed  =  (lpDIS->itemState & ODS_SELECTED)
					|| (m_nCheck != 0);
		//bIsPressed = TRUE;
	}
	// Normal button OR other button style ...
	else
	{
		bIsPressed = (lpDIS->itemState & ODS_SELECTED);
	}

//	BOOL bIsPressed  = (lpDIS->itemState & ODS_SELECTED);
	BOOL bIsFocused  = (lpDIS->itemState & ODS_FOCUS);
	BOOL bIsDisabled = (lpDIS->itemState & ODS_DISABLED);

	CRect itemRect = lpDIS->rcItem;

	pDC->SetBkMode(TRANSPARENT);

	if (m_bIsFlat == FALSE)
	{
		if (bIsFocused || (GetDefault() == TRUE))
		{
			CBrush br(RGB(0,0,0));  
			pDC->FrameRect(&itemRect, &br);
			itemRect.DeflateRect(1, 1);
		}
	}

	// Prepare draw... paint button's area with background color
	COLORREF bgColor;
	if ((m_bMouseOnButton == TRUE) || (bIsPressed))
		bgColor = m_crColors[BTNST_COLOR_BK_IN]; //GetActiveBgColor();
	else
		bgColor = m_crColors[BTNST_COLOR_BK_OUT]; //GetInactiveBgColor();

	CBrush br(bgColor);
	// Draw transparent?
	if (m_bDrawTransparent == TRUE)
	{
		PaintBk(pDC);
	}
	else
	{
		pDC->FillRect(&itemRect, &br);
	}

	// Disegno lo sfondo del bottone
	//CBrush br(GetSysColor(COLOR_BTNFACE));  
	//pDC->FillRect(&itemRect, &br);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
4438x成人网最大色成网站| 麻豆精品在线视频| 一道本成人在线| 亚洲一区二区三区四区在线免费观看 | 国产婷婷色一区二区三区在线| 老司机精品视频导航| 久久久久久久久久久久久久久99 | 一区二区三区欧美| 欧美日韩国产首页| 精品一区二区三区免费观看 | 色综合久久久久综合| 亚洲国产精品久久久久秋霞影院| 欧美一区日本一区韩国一区| 精品影院一区二区久久久| 国产三级精品视频| 日本精品视频一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日韩和欧美的一区二区| 亚洲综合色婷婷| 欧美精品在线观看一区二区| 秋霞电影一区二区| 国产免费久久精品| 91国偷自产一区二区使用方法| 日本伊人色综合网| 国产日产欧产精品推荐色 | 国产精品国产a| 在线视频亚洲一区| 乱一区二区av| 亚洲精品高清在线| 久久综合精品国产一区二区三区| 97精品超碰一区二区三区| 日韩av网站在线观看| 综合色中文字幕| 日韩精品一区国产麻豆| 色噜噜狠狠成人网p站| 久久99精品久久久久婷婷| 欧美精品一区二区三区高清aⅴ | 综合久久国产九一剧情麻豆| 欧美一区二区视频观看视频| 成人av免费在线| 久久超碰97人人做人人爱| 亚洲已满18点击进入久久| 久久精品亚洲精品国产欧美| 欧美日韩国产天堂| 色婷婷av久久久久久久| 成人美女视频在线观看18| 另类欧美日韩国产在线| 亚洲成人黄色影院| 亚洲三级电影全部在线观看高清| 精品久久久久久亚洲综合网| 欧美日韩免费电影| 在线观看视频一区二区欧美日韩| 粉嫩蜜臀av国产精品网站| 久久99久久久欧美国产| 视频在线观看91| 亚洲国产色一区| 亚洲女与黑人做爰| 国产精品美女久久久久久久| 久久久久99精品一区| 精品国产乱码久久久久久久| 欧美日韩免费视频| 一本久久精品一区二区| 成人av电影在线| 岛国精品一区二区| 国产精品综合在线视频| 精品写真视频在线观看| 蜜桃av噜噜一区二区三区小说| 亚洲成人高清在线| 亚洲国产精品久久久久秋霞影院| 亚洲欧美激情在线| 亚洲人成小说网站色在线 | 亚洲综合久久av| 亚洲欧美日韩中文播放| 亚洲三级在线播放| 亚洲麻豆国产自偷在线| 亚洲精品视频一区| 亚洲一区二区在线免费看| 亚洲精品成a人| 亚洲综合图片区| 亚洲国产美女搞黄色| 亚洲图片欧美一区| 三级欧美韩日大片在线看| 精品伊人久久久久7777人| 久久精品国产一区二区三| 黄色日韩三级电影| 国模套图日韩精品一区二区| 国产成人aaa| 懂色av中文字幕一区二区三区| 国产夫妻精品视频| eeuss鲁一区二区三区| 91丨porny丨国产入口| 欧美日韩在线播放一区| 欧美亚洲日本国产| 5月丁香婷婷综合| 精品粉嫩超白一线天av| 国产精品欧美一区二区三区| 亚洲激情中文1区| 日韩精品国产精品| 韩国成人在线视频| 91捆绑美女网站| 91精品国产入口| 久久久久久日产精品| 自拍偷拍国产精品| 日本亚洲视频在线| 国产91精品精华液一区二区三区| 91亚洲精华国产精华精华液| 欧美精品 国产精品| 久久久综合视频| 亚洲人成网站影音先锋播放| 日本亚洲三级在线| 成人精品鲁一区一区二区| 欧美视频完全免费看| 亚洲精品一区二区精华| 亚洲免费成人av| 久久精品国产亚洲高清剧情介绍 | 久久女同精品一区二区| 中文字幕一区二区三区视频 | 亚洲精品美国一| 日韩1区2区日韩1区2区| av电影天堂一区二区在线| 欧美精品久久久久久久久老牛影院| 日韩欧美一二三| 中文字幕一区二区三区在线不卡 | 欧美久久免费观看| 国产精品全国免费观看高清 | 日韩欧美国产综合在线一区二区三区| 欧美人伦禁忌dvd放荡欲情| 精品不卡在线视频| 亚洲一区二区三区美女| 国产伦精品一区二区三区免费| 色综合天天做天天爱| 日韩欧美国产三级| 亚洲一区二区精品视频| 成人激情电影免费在线观看| 欧美一区二区三区系列电影| 一区精品在线播放| 国内成人精品2018免费看| 欧美怡红院视频| 国产精品久99| 国产精品一区二区无线| 69av一区二区三区| 亚洲精品中文字幕在线观看| 国产福利一区二区三区视频 | 狠狠狠色丁香婷婷综合久久五月| 99精品视频免费在线观看| 久久久久久久久免费| 久久爱www久久做| 欧美老年两性高潮| 一区二区三区在线看| 成人av手机在线观看| 国产女人18毛片水真多成人如厕| 久久精品国产免费| 91精品国产乱码久久蜜臀| 亚洲欧美日韩系列| 极品少妇一区二区三区精品视频 | 丁香网亚洲国际| 精品久久久久久久一区二区蜜臀| 国产精品白丝在线| 成人性色生活片| 国产精品私房写真福利视频| 韩国女主播成人在线观看| 日韩欧美激情在线| 久久69国产一区二区蜜臀| 91精品久久久久久久91蜜桃| 天涯成人国产亚洲精品一区av| 欧美亚洲禁片免费| 亚洲高清中文字幕| 欧美日韩国产美| 天天影视涩香欲综合网| 久久青草欧美一区二区三区| 久久精品国产一区二区| 精品sm在线观看| 国产精品性做久久久久久| 国产色婷婷亚洲99精品小说| 成人性视频免费网站| 国产精品女同一区二区三区| 成人av资源网站| 亚洲欧美成人一区二区三区| 在线观看日韩毛片| 日韩精品1区2区3区| 欧美日韩精品免费观看视频| 国产91精品一区二区麻豆亚洲| 久久综合久久综合久久综合| 国产一区二区91| 国产精品久久久久久久久免费丝袜 | 久久99久国产精品黄毛片色诱| 日韩视频免费直播| 国产一区二区伦理片| 国产精品伦一区二区三级视频| 色网站国产精品| 日韩高清中文字幕一区| 精品国产一区二区三区四区四| 东方aⅴ免费观看久久av| 亚洲人成在线观看一区二区| 欧美精品自拍偷拍| 国产精品综合网| 亚洲最色的网站| 欧美大胆一级视频| 波多野结衣中文字幕一区二区三区| 亚洲欧美乱综合|