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

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

?? btnst.cpp

?? 經過測試確實可行
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// BtnST.cpp : implementation file
//

#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_MouseOnButton = FALSE;

	m_hIconIn = NULL;
	m_hIconOut = NULL;
	m_cxIcon = 0;
	m_cyIcon = 0;
	m_hCursor = NULL;
  
	// Default type is "flat" button
	m_bIsFlat = TRUE; 
  
	// 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;

	SetDefaultInactiveBgColor();
	SetDefaultInactiveFgColor();
	SetDefaultActiveBgColor();
	SetDefaultActiveFgColor();

	// No tooltip created
	m_ToolTip.m_hWnd = NULL;

	// Do not draw as a transparent button
	m_bDrawTransparent = FALSE;
	m_pbmpOldBk = NULL;
} // End of CButtonST


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

	/* Removed by Bounds Checker suggestion
	// Destroy the icons (if any)
	if (m_hIconIn != NULL) ::DeleteObject(m_hIconIn);
	if (m_hIconOut != NULL) ::DeleteObject(m_hIconOut);
	// 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()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


void CButtonST::SetIcon(int nIconInId, int nIconOutId)
{
	HINSTANCE hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(nIconInId),
													RT_GROUP_ICON);
	// Set icon when the mouse is IN the button
	m_hIconIn = (HICON)::LoadImage(hInstResource/*AfxGetApp()->m_hInstance*/, MAKEINTRESOURCE(nIconInId), IMAGE_ICON, 0, 0, 0);
  
	// Set icon when the mouse is OUT the button
	m_hIconOut = (nIconOutId == NULL) ? m_hIconIn : (HICON)::LoadImage(hInstResource/*AfxGetApp()->m_hInstance*/, MAKEINTRESOURCE(nIconOutId), IMAGE_ICON, 0, 0, 0);
  
	ICONINFO ii;

	// Get icon dimension
	ZeroMemory(&ii, sizeof(ICONINFO));
	::GetIconInfo(m_hIconIn, &ii);

	m_cxIcon = (BYTE)(ii.xHotspot * 2);
	m_cyIcon = (BYTE)(ii.yHotspot * 2);

	RedrawWindow();
} // 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 != -1)
	{
		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:
         m_nAlign = ST_ALIGN_HORIZ;
         break;
    case ST_ALIGN_VERT:
         m_nAlign = ST_ALIGN_VERT;
         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


const char* CButtonST::GetVersionC()
{
  return "2.5";
} // End of GetVersionC


const short CButtonST::GetVersionI()
{
  return 25; // Divide by 10 to get actual version
} // End of GetVersionI


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_MouseOnButton == 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_MouseOnButton = 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)
		{
			// Redraw only if mouse goes out
			if (m_MouseOnButton == TRUE)
			{
				m_MouseOnButton = 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);

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

  if (m_MouseOnButton == TRUE)
  {
    m_MouseOnButton = FALSE;
    Invalidate();
  }
} // End of OnKillFocus


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

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


void CButtonST::DrawItem(LPDRAWITEMSTRUCT lpDIS)
{
#ifdef ST_USE_MEMDC
  CDC  *pdrawDC = CDC::FromHandle(lpDIS->hDC);
  CMemDC memDC(pdrawDC);
  CDC  *pDC = &memDC;
#else	
  CDC* pDC = CDC::FromHandle(lpDIS->hDC);
#endif

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

  CRect itemRect = lpDIS->rcItem;

  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_MouseOnButton == TRUE) || (bIsPressed))
    bgColor = GetActiveBgColor();
  else
    bgColor = 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);

  // Draw pressed button
  if (bIsPressed)
  {
    if (m_bIsFlat == TRUE)
    {
      if (m_bDrawBorder == TRUE)
      {
	    CPen penBtnHiLight(PS_SOLID, 0, GetSysColor(COLOR_BTNHILIGHT)); // Bianco
        CPen penBtnShadow(PS_SOLID, 0, GetSysColor(COLOR_BTNSHADOW));   // Grigio scuro

        // Disegno i bordi a sinistra e in alto
        // Dark gray line
        pOldPen = pDC->SelectObject(&penBtnShadow);
        pDC->MoveTo(itemRect.left, itemRect.bottom-1);
        pDC->LineTo(itemRect.left, itemRect.top);
        pDC->LineTo(itemRect.right, itemRect.top);
        // Disegno i bordi a destra e in basso
        // White line
        pDC->SelectObject(penBtnHiLight);
        pDC->MoveTo(itemRect.left, itemRect.bottom-1);
        pDC->LineTo(itemRect.right-1, itemRect.bottom-1);
        pDC->LineTo(itemRect.right-1, itemRect.top-1);
        //
        pDC->SelectObject(pOldPen);
      }
    }
    else    
    {
      CBrush brBtnShadow(GetSysColor(COLOR_BTNSHADOW));
      pDC->FrameRect(&itemRect, &brBtnShadow);
    }
  }
  else // ...else draw non pressed button
  {
    CPen penBtnHiLight(PS_SOLID, 0, GetSysColor(COLOR_BTNHILIGHT)); // White
    CPen pen3DLight(PS_SOLID, 0, GetSysColor(COLOR_3DLIGHT));       // Light gray
    CPen penBtnShadow(PS_SOLID, 0, GetSysColor(COLOR_BTNSHADOW));   // Dark gray
    CPen pen3DDKShadow(PS_SOLID, 0, GetSysColor(COLOR_3DDKSHADOW)); // Black

    if (m_bIsFlat == TRUE)
    {
      if (m_MouseOnButton == TRUE && m_bDrawBorder == TRUE)
      {
  	    // Disegno i bordi a sinistra e in alto
        // White line
        pOldPen = pDC->SelectObject(&penBtnHiLight);
        pDC->MoveTo(itemRect.left, itemRect.bottom-1);
        pDC->LineTo(itemRect.left, itemRect.top);
        pDC->LineTo(itemRect.right, itemRect.top);
        // Disegno i bordi a destra e in basso
        // Dark gray line
        pDC->SelectObject(penBtnShadow);
        pDC->MoveTo(itemRect.left, itemRect.bottom-1);
        pDC->LineTo(itemRect.right-1, itemRect.bottom-1);
        pDC->LineTo(itemRect.right-1, itemRect.top-1);
        //
        pDC->SelectObject(pOldPen);
      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩一区二区三区免费视频| 国产片一区二区| 精品国产91亚洲一区二区三区婷婷| 国产欧美一区二区精品忘忧草 | 欧美日韩精品一区二区三区蜜桃| 日韩一区二区不卡| 亚洲伦理在线免费看| 国产美女娇喘av呻吟久久| 欧美性极品少妇| 18欧美乱大交hd1984| 韩国欧美国产1区| 91精品国产综合久久福利软件 | 精品亚洲porn| 欧美日韩免费在线视频| 日韩伦理av电影| 成人h动漫精品一区二| 精品国产一区久久| 免费成人美女在线观看| 欧美视频一二三区| 亚洲第一电影网| 欧美在线综合视频| 自拍偷拍国产精品| 97国产一区二区| 国产精品欧美综合在线| 成人精品小蝌蚪| 欧美国产日本视频| 北条麻妃一区二区三区| 欧美国产日本韩| 成人综合在线视频| 中文字幕永久在线不卡| 成人a免费在线看| 国产精品久久久久久久第一福利| 丁香一区二区三区| 亚洲天天做日日做天天谢日日欢| 成人综合婷婷国产精品久久蜜臀 | 7777精品伊人久久久大香线蕉| 亚洲国产视频直播| 欧美日韩国产中文| 日韩精品国产精品| 欧美mv日韩mv国产| 国产91色综合久久免费分享| 中文字幕乱码亚洲精品一区| 99久久久国产精品免费蜜臀| 亚洲欧美综合另类在线卡通| 99国内精品久久| 亚洲综合精品自拍| 欧美肥大bbwbbw高潮| 精品在线观看免费| 国产欧美日韩激情| 色狠狠色噜噜噜综合网| 国产精品夜夜嗨| 欧美国产综合一区二区| 色婷婷av一区二区三区gif| 日韩av一区二| 国产清纯美女被跳蛋高潮一区二区久久w | 国产91在线看| 亚洲免费在线看| 制服.丝袜.亚洲.中文.综合| 国产精品一级在线| 一区二区三区在线视频播放| 欧美一级爆毛片| 盗摄精品av一区二区三区| 亚洲宅男天堂在线观看无病毒| 欧美一级欧美三级| 成人免费视频播放| 日韩高清不卡一区| 国产精品乱人伦| 欧美一级片在线看| 99精品久久99久久久久| 日韩成人午夜电影| 日韩美女视频一区二区| 91精品国产aⅴ一区二区| 成人免费黄色大片| 日本午夜精品一区二区三区电影 | 亚洲日本一区二区| 欧美色爱综合网| 国产jizzjizz一区二区| 人人爽香蕉精品| 亚洲一卡二卡三卡四卡无卡久久| 精品国一区二区三区| 欧美在线三级电影| 成人自拍视频在线| 久久电影网电视剧免费观看| 亚洲精品成人悠悠色影视| 久久新电视剧免费观看| 欧美日韩国产综合视频在线观看| 波多野结衣欧美| 精品一区二区三区视频在线观看 | 成人性生交大片免费看视频在线 | 九色综合狠狠综合久久| 亚洲一区影音先锋| 国产精品私人自拍| 欧美精品一区二区三区久久久| 欧美性生交片4| av网站一区二区三区| 国产精品主播直播| 久久99久久99精品免视看婷婷| 午夜一区二区三区在线观看| 亚洲人成人一区二区在线观看| 国产色婷婷亚洲99精品小说| 欧美大尺度电影在线| 欧美精品第1页| 欧美午夜精品理论片a级按摩| 欧美一区二区播放| 欧美日韩色一区| 欧美裸体一区二区三区| 欧美亚洲一区二区三区四区| 91国产免费观看| 色噜噜狠狠成人中文综合| 99re视频这里只有精品| 成av人片一区二区| 99re热这里只有精品免费视频| 国产成人精品一区二区三区网站观看| 国产一区不卡精品| 国产精品77777竹菊影视小说| 国产中文字幕精品| 国产黄色成人av| 国产91高潮流白浆在线麻豆| 夫妻av一区二区| 一本一道久久a久久精品综合蜜臀 一本一道综合狠狠老 | 亚洲国产视频一区| 亚洲在线成人精品| 午夜av一区二区三区| 青青草国产精品97视觉盛宴| 免费久久精品视频| 国产乱子伦一区二区三区国色天香| 精品一区二区精品| 成人影视亚洲图片在线| 91农村精品一区二区在线| 91久久久免费一区二区| 欧美精品一卡两卡| 精品成人一区二区三区四区| 国产视频不卡一区| 一区二区三区欧美视频| 日韩专区中文字幕一区二区| 极品尤物av久久免费看| fc2成人免费人成在线观看播放| 日本精品视频一区二区三区| 欧美精品 国产精品| 久久久一区二区| 最新不卡av在线| 视频一区国产视频| 国产乱对白刺激视频不卡 | 国产电影精品久久禁18| 色久优优欧美色久优优| 欧美一区二区视频观看视频| 国产人妖乱国产精品人妖| 亚洲国产成人91porn| 国产精品亚洲视频| 在线免费观看成人短视频| 精品国产乱码久久久久久图片| 综合电影一区二区三区 | 欧洲生活片亚洲生活在线观看| 中文字幕日韩欧美一区二区三区| 一区二区三区在线观看网站| 老司机精品视频一区二区三区| av综合在线播放| 欧美电影精品一区二区| 一区二区三区四区高清精品免费观看| 看电影不卡的网站| 欧美日韩国产片| 1区2区3区精品视频| 国产乱人伦偷精品视频免下载 | 麻豆精品一区二区av白丝在线| 岛国精品在线观看| 日韩免费高清av| 亚洲国产精品一区二区久久恐怖片 | 欧美乱妇一区二区三区不卡视频 | 欧美成人乱码一区二区三区| 亚洲激情图片qvod| 国产91对白在线观看九色| 日韩欧美一卡二卡| 亚洲在线视频网站| aaa亚洲精品一二三区| 精品盗摄一区二区三区| 午夜不卡在线视频| 在线观看亚洲精品视频| 国产精品色呦呦| 国内不卡的二区三区中文字幕 | 久久国产精品免费| 欧美日韩一区小说| 亚洲欧美偷拍卡通变态| 粉嫩av一区二区三区| 久久亚洲二区三区| 国产一区二区三区av电影| 欧美一区二区三级| 香蕉久久夜色精品国产使用方法 | 婷婷成人综合网| 在线这里只有精品| 一区二区三区四区精品在线视频| 99久久综合国产精品| 国产精品美女久久福利网站| 国产美女在线精品| 久久精品免视看| 国产乱理伦片在线观看夜一区| 久久九九影视网| 春色校园综合激情亚洲| 最新中文字幕一区二区三区| av高清久久久| 亚洲视频免费在线观看|