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

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

?? btnst.cpp

?? 視頻芯片管理系統
?? 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一区二区三区免费野_久草精品视频
不卡欧美aaaaa| 中文字幕精品一区二区三区精品| 制服丝袜亚洲播放| 中文字幕欧美激情一区| 婷婷中文字幕综合| 91电影在线观看| 久久久五月婷婷| 蜜桃视频一区二区三区 | 美女一区二区久久| 色婷婷精品久久二区二区蜜臂av| 久久综合九色综合97婷婷女人| 亚洲一本大道在线| 色婷婷亚洲综合| 国产精品日产欧美久久久久| 精东粉嫩av免费一区二区三区| 欧美在线你懂得| 亚洲激情校园春色| 99这里只有久久精品视频| 欧美精品一区二区三区蜜桃 | 国产精品国产三级国产aⅴ入口| 麻豆国产欧美日韩综合精品二区| 欧美猛男gaygay网站| 一区二区三区日韩精品| 成人免费黄色大片| 国产欧美综合在线| 国产91丝袜在线播放0| 久久精品欧美日韩精品 | 26uuu成人网一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 激情综合一区二区三区| 日韩区在线观看| 免费观看在线综合| 日韩欧美一二三| 久久99久久99| 久久综合久久鬼色中文字| 蜜桃av一区二区在线观看| 欧美精品久久一区二区三区| 午夜国产精品一区| 日韩丝袜情趣美女图片| 蜜臀国产一区二区三区在线播放| 日韩视频中午一区| 国产福利一区二区| 国产精品久久国产精麻豆99网站| 99久久婷婷国产| 一区二区三区精品在线| 欧美裸体一区二区三区| 伦理电影国产精品| 国产三区在线成人av| av日韩在线网站| 亚洲成人av免费| 日韩精品专区在线影院重磅| 国产精品一卡二| 亚洲人一二三区| 制服丝袜在线91| 国产精品2024| 亚洲午夜久久久| 精品国产a毛片| 99久久综合狠狠综合久久| 亚洲另类在线视频| 日韩一级免费观看| 国产99久久久精品| 亚洲国产成人va在线观看天堂| 日韩一级高清毛片| 99久久综合99久久综合网站| 爽好多水快深点欧美视频| 国产午夜三级一区二区三| 色综合中文字幕| 精品一区二区久久久| 最新成人av在线| 日韩一级完整毛片| 色一情一伦一子一伦一区| 免费精品视频在线| 一区二区三区在线高清| 精品日韩在线观看| 在线免费一区三区| 国产成人亚洲综合a∨婷婷| 亚洲大片在线观看| 中文字幕色av一区二区三区| 91麻豆精品国产91| 99国产精品久久久久久久久久| 蜜臀av一区二区在线观看| 国产精品久久夜| 欧美电影精品一区二区| 在线国产电影不卡| 国产精品一区在线观看你懂的| 亚洲一区二区三区四区五区黄| 国产无人区一区二区三区| 欧美一区二区三区视频| 91美女福利视频| 国产成人在线看| 蜜臀久久99精品久久久久久9| 亚洲精品国产第一综合99久久| 久久蜜桃av一区精品变态类天堂| 欧美日韩国产区一| 欧美在线一区二区| 99热这里都是精品| 国产成人免费9x9x人网站视频| 秋霞成人午夜伦在线观看| 夜夜精品浪潮av一区二区三区| 中文字幕在线观看不卡视频| 久久九九影视网| 欧美成人bangbros| 日韩欧美一级二级| 91精品国产麻豆| 欧美一级精品大片| 欧美日韩另类一区| 欧美日韩一级黄| 欧美日本韩国一区二区三区视频| 色婷婷国产精品久久包臀| 91麻豆精品在线观看| 成人av在线网站| 99精品欧美一区二区三区小说| 国产91丝袜在线播放0| 国产精品99久久久久久宅男| 国产精品一区二区无线| 国产精品一区二区果冻传媒| 国产在线精品免费| 国产麻豆日韩欧美久久| 国产99久久久国产精品潘金网站| 国产精品系列在线播放| 国产99精品视频| 91香蕉视频mp4| 色成人在线视频| 在线电影一区二区三区| 日韩欧美资源站| 国产亚洲精品免费| 国产精品高潮呻吟| 亚洲黄色小视频| 日本伊人午夜精品| 国产自产高清不卡| av不卡免费在线观看| 色爱区综合激月婷婷| 欧美一区二区三区系列电影| 日韩一区二区三区电影在线观看| 欧美精品一区二区三区蜜桃| 欧美激情一区二区三区在线| 尤物在线观看一区| 免费成人av资源网| 成人丝袜高跟foot| 欧美午夜影院一区| 欧美一区二区国产| 国产欧美日韩精品在线| 亚洲精品高清视频在线观看| 蜜桃精品在线观看| 成人激情免费网站| 欧美区视频在线观看| 国产天堂亚洲国产碰碰| 一区av在线播放| 国模少妇一区二区三区| 在线观看网站黄不卡| 久久久久久久综合色一本| 亚洲免费观看高清完整版在线观看熊| 日韩中文字幕区一区有砖一区| 国产精品亚洲视频| 欧美精品自拍偷拍| 国产精品黄色在线观看| 日本亚洲电影天堂| 91蜜桃婷婷狠狠久久综合9色| 日韩欧美一二区| 亚洲精品中文字幕乱码三区| 久久99久久99精品免视看婷婷| 91久久国产综合久久| 亚洲精品一线二线三线无人区| 日韩美女啊v在线免费观看| 久久66热偷产精品| 欧美日韩极品在线观看一区| 国产精品网曝门| 久久99国产乱子伦精品免费| 欧洲精品一区二区| 国产精品久久国产精麻豆99网站| 蜜臀a∨国产成人精品| 欧美在线不卡一区| 国产精品久久毛片a| 国产麻豆精品95视频| 欧美一区日韩一区| 亚洲福利一区二区| 91视频精品在这里| 国产精品欧美一级免费| 国产精品99久久久久久久vr| 欧美久久久久久蜜桃| 亚洲精品日韩一| 91一区二区三区在线观看| 国产女人aaa级久久久级| 国产一二三精品| 日韩欧美国产一区二区在线播放| 性感美女极品91精品| 在线精品视频免费播放| 亚洲美女区一区| 97成人超碰视| 国产精品久久久久精k8| 成人精品在线视频观看| 国产欧美日韩三区| 国产成人精品免费| 国产精品午夜春色av| 成人午夜电影久久影院| 综合色天天鬼久久鬼色| 91同城在线观看| 亚洲国产一二三| 91精品福利在线一区二区三区 | 亚洲综合一区在线|