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

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

?? btnst.cpp

?? 近期購(gòu)買了“VC++深入詳解”一書
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        pDC->SelectObject(pOldPen);
*/
      }
    }
    else
    {
      // 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);
      // Light gray line
      pDC->SelectObject(pen3DLight);
      pDC->MoveTo(itemRect.left+1, itemRect.bottom-1);
      pDC->LineTo(itemRect.left+1, itemRect.top+1);
      pDC->LineTo(itemRect.right, itemRect.top+1);
      // Disegno i bordi a destra e in basso
      // Black line
      pDC->SelectObject(pen3DDKShadow);
      pDC->MoveTo(itemRect.left, itemRect.bottom-1);
      pDC->LineTo(itemRect.right-1, itemRect.bottom-1);
      pDC->LineTo(itemRect.right-1, itemRect.top-1);
      // Dark gray line
      pDC->SelectObject(penBtnShadow);
      pDC->MoveTo(itemRect.left+1, itemRect.bottom-2);
      pDC->LineTo(itemRect.right-2, itemRect.bottom-2);
      pDC->LineTo(itemRect.right-2, itemRect.top);
      //
      pDC->SelectObject(pOldPen);
    }
  }

  // Read the button's title
  CString sTitle;
  GetWindowText(sTitle);

  // If we don't want the title displayed
  if (m_bShowText == FALSE) sTitle.Empty();

  CRect captionRect = lpDIS->rcItem;

  // Draw the icon
  if (m_hIconIn != NULL)
  {
    DrawTheIcon(pDC, &sTitle, &lpDIS->rcItem, &captionRect, bIsPressed, bIsDisabled);
  }

  // Write the button title (if any)
  if (sTitle.IsEmpty() == FALSE)
  {
    // Disegno la caption del bottone
    // Se il bottone e' premuto muovo la captionRect di conseguenza
    if (bIsPressed)
      captionRect.OffsetRect(1, 1);
    
    // ONLY FOR DEBUG 
    // Evidenzia il rettangolo in cui verra' centrata la caption 
    //CBrush brBtnShadow(RGB(255, 0, 0));
    //pDC->FrameRect(&captionRect, &brBtnShadow);

#ifdef ST_USE_MEMDC
	// Get dialog's font
    CFont *pCurrentFont = GetFont(); 
    CFont *pOldFont = pDC->SelectObject(pCurrentFont);
#endif
    if ((m_MouseOnButton == TRUE) || (bIsPressed)) 
	{
      pDC->SetTextColor(GetActiveFgColor());
      pDC->SetBkColor(GetActiveBgColor());
    } 
	else 
	{
      pDC->SetTextColor(GetInactiveFgColor());
      pDC->SetBkColor(GetInactiveBgColor());
    }
    // Center text
    CRect centerRect = captionRect;
    pDC->DrawText(sTitle, -1, captionRect, DT_SINGLELINE|DT_CALCRECT);
    captionRect.OffsetRect((centerRect.Width() - captionRect.Width())/2, (centerRect.Height() - captionRect.Height())/2);
	/* RFU
    captionRect.OffsetRect(0, (centerRect.Height() - captionRect.Height())/2);
    captionRect.OffsetRect((centerRect.Width() - captionRect.Width())-4, (centerRect.Height() - captionRect.Height())/2);
	*/

	pDC->SetBkMode(TRANSPARENT);
    pDC->DrawState(captionRect.TopLeft(), captionRect.Size(), (LPCTSTR)sTitle, (bIsDisabled ? DSS_DISABLED : DSS_NORMAL), 
                   TRUE, 0, (CBrush*)NULL);
#ifdef ST_USE_MEMDC
    pDC->SelectObject(pOldFont);
#endif
  }

  if (m_bIsFlat == FALSE || (m_bIsFlat == TRUE && m_bDrawFlatFocus == TRUE))
  {
    // Draw the focus rect
    if (bIsFocused)
    {
      CRect focusRect = itemRect;
      focusRect.DeflateRect(3, 3);
      pDC->DrawFocusRect(&focusRect);
    }
  }
} // End of DrawItem


void CButtonST::DrawTheIcon(CDC* pDC, CString* title, RECT* rcItem, CRect* captionRect, BOOL IsPressed, BOOL IsDisabled)
{
	CRect iconRect = rcItem;
	CRect btnRect;

  switch (m_nAlign)
  {
    case ST_ALIGN_HORIZ:
         if (title->IsEmpty())
         {
           // Center the icon horizontally
           iconRect.left += ((iconRect.Width() - m_cxIcon)/2);
         }
         else
         {
           // L'icona deve vedersi subito dentro il focus rect
           iconRect.left += 3;  
           captionRect->left += m_cxIcon + 3;
         }
         // Center the icon vertically
         iconRect.top += ((iconRect.Height() - m_cyIcon)/2);
         break;
	case ST_ALIGN_HORIZ_RIGHT:
			GetClientRect(&btnRect);
			if (title->IsEmpty())
			{
				// Center the icon horizontally
				iconRect.left += ((iconRect.Width() - m_cxIcon)/2);
			}
			else
			{
				// L'icona deve vedersi subito dentro il focus rect
				captionRect->right = captionRect->Width() - m_cxIcon - 3;
				captionRect->left = 3;
				iconRect.left = btnRect.right - m_cxIcon - 3;
				// Center the icon vertically
				iconRect.top += ((iconRect.Height() - m_cyIcon)/2);
			}
	break;
    case ST_ALIGN_VERT:
         // Center the icon horizontally
         iconRect.left += ((iconRect.Width() - m_cxIcon)/2);
         if (title->IsEmpty())
         {
           // Center the icon vertically
           iconRect.top += ((iconRect.Height() - m_cyIcon)/2);           
         }
         else
         {
           captionRect->top += m_cyIcon;
         }
         break;
  }
    
  // If button is pressed then press the icon also
  if (IsPressed) iconRect.OffsetRect(1, 1);
  // Ole'!
  pDC->DrawState(	iconRect.TopLeft(),
					iconRect.Size(), 
					(m_MouseOnButton == TRUE || IsPressed) ? m_hIconIn : m_hIconOut, 
					(IsDisabled ? DSS_DISABLED : DSS_NORMAL), 
					(CBrush*)NULL);
} // End of DrawTheIcon


void CButtonST::PreSubclassWindow() 
{
	UINT nBS;

	nBS = GetButtonStyle();

	// Check if this is the default button
	if (nBS & BS_DEFPUSHBUTTON) m_bIsDefault = TRUE;

	// Add BS_OWNERDRAW style
	SetButtonStyle(nBS | BS_OWNERDRAW);

	CButton::PreSubclassWindow();
} // End of PreSubclassWindow


BOOL CButtonST::PreTranslateMessage(MSG* pMsg) 
{
	InitToolTip();
	m_ToolTip.RelayEvent(pMsg);
	
	return CButton::PreTranslateMessage(pMsg);
} // End of PreTranslateMessage


LRESULT CButtonST::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	if (message == WM_LBUTTONDBLCLK)
	{
		message = WM_LBUTTONDOWN;
	}
	return CButton::DefWindowProc(message, wParam, lParam);
} // End of DefWindowProc


void CButtonST::SetDefaultInactiveBgColor(BOOL bRepaint)
{
	m_crInactiveBg = ::GetSysColor(COLOR_BTNFACE); 
	if (bRepaint == TRUE) Invalidate();
} // End of SetDefaultInactiveBgColor


void CButtonST::SetInactiveBgColor(COLORREF crNew, BOOL bRepaint)
{
	m_crInactiveBg = crNew; 
	if (bRepaint == TRUE) Invalidate();
} // End of SetInactiveBgColor


const COLORREF CButtonST::GetInactiveBgColor()
{
	return m_crInactiveBg;
} // End of GetInactiveBgColor


void CButtonST::SetDefaultInactiveFgColor(BOOL bRepaint)
{
	m_crInactiveFg = ::GetSysColor(COLOR_BTNTEXT); 
	if (bRepaint == TRUE) Invalidate();
} // End of SetDefaultInactiveFgColor


void CButtonST::SetInactiveFgColor(COLORREF crNew, BOOL bRepaint)
{
	m_crInactiveFg = crNew; 
	if (bRepaint == TRUE) Invalidate();
} // End of SetInactiveFgColor


const COLORREF CButtonST::GetInactiveFgColor()
{
	return m_crInactiveFg;
} // End of GetInactiveFgColor


void CButtonST::SetDefaultActiveBgColor(BOOL bRepaint)
{
	m_crActiveBg = ::GetSysColor(COLOR_BTNFACE); 
	if (bRepaint == TRUE) Invalidate();
} // End of SetDefaultActiveBgColor


void CButtonST::SetActiveBgColor(COLORREF crNew, BOOL bRepaint)
{
	m_crActiveBg = crNew; 
	if (bRepaint == TRUE) Invalidate();
} // End of SetActiveBgColor


const COLORREF CButtonST::GetActiveBgColor()
{
	return m_crActiveBg;
} // End of GetActiveBgColor


void CButtonST::SetDefaultActiveFgColor(BOOL bRepaint)
{
	m_crActiveFg = ::GetSysColor(COLOR_BTNTEXT); 
	if (bRepaint == TRUE) Invalidate();
} // End of SetDefaultActiveFgColor


void CButtonST::SetActiveFgColor(COLORREF crNew, BOOL bRepaint)
{
	m_crActiveFg = crNew; 
	if (bRepaint == TRUE) Invalidate();
} // End of SetActiveFgColor


const COLORREF CButtonST::GetActiveFgColor()
{
	return m_crActiveFg;
} // End of GetActiveFgColor


void CButtonST::SetFlatFocus(BOOL bDrawFlatFocus, BOOL bRepaint)
{
	m_bDrawFlatFocus = bDrawFlatFocus;
	
	// Repaint the button
	if (bRepaint == TRUE) Invalidate();
} // End of SetFlatFocus


BOOL CButtonST::GetFlatFocus()
{
	return m_bDrawFlatFocus;
} // End of GetFlatFocus


BOOL CButtonST::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	// If a cursor was specified then use it!
	if (m_hCursor != NULL)
	{
		::SetCursor(m_hCursor);
		return TRUE;
	}

	return CButton::OnSetCursor(pWnd, nHitTest, message);
} // End of OnSetCursor


void CButtonST::SetTooltipText(CString* spText, BOOL bActivate)
{
	// We cannot accept NULL pointer
	if (spText == NULL) return;

	// Initialize ToolTip
	InitToolTip();

	// If there is no tooltip defined then add it
	if (m_ToolTip.GetToolCount() == 0)
	{
		CRect rectBtn; 
		GetClientRect(rectBtn);
		m_ToolTip.AddTool(this, (LPCTSTR)*spText, rectBtn, 1);
	}

	// Set text for tooltip
	m_ToolTip.UpdateTipText((LPCTSTR)*spText, this, 1);
	m_ToolTip.Activate(bActivate);
} // End of SetTooltipText


void CButtonST::SetTooltipText(int nId, BOOL bActivate)
{
	CString sText;

	// load string resource
	sText.LoadString(nId);
	// If string resource is not empty
	if (sText.IsEmpty() == FALSE) SetTooltipText(&sText, bActivate);
} // End of SetTooltipText


void CButtonST::ActivateTooltip(BOOL bActivate)
{
	// If there is no tooltip then do nothing
	if (m_ToolTip.GetToolCount() == 0) return;

	// Activate tooltip
	m_ToolTip.Activate(bActivate);
} // End of EnableTooltip


BOOL CButtonST::GetDefault()
{
	return m_bIsDefault;
} // End of GetDefault


void CButtonST::DrawTransparent(BOOL bRepaint)
{
	m_bDrawTransparent = TRUE;

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

	m_bmpBk.Detach();
	m_dcBk.Detach();

	// Repaint the button
	if (bRepaint == TRUE) Invalidate();
} // End of DrawTransparent


void CButtonST::InitToolTip()
{
	if (m_ToolTip.m_hWnd == NULL)
	{
		// Create ToolTip control
		m_ToolTip.Create(this);
		// Create inactive
		m_ToolTip.Activate(FALSE);
	}
} // End of InitToolTip


void CButtonST::PaintBk(CDC * pDC)
{
	CClientDC clDC(GetParent());
	CRect rect;
	CRect rect1;

	GetClientRect(rect);

	GetWindowRect(rect1);
	GetParent()->ScreenToClient(rect1);

	if (m_dcBk.m_hDC == NULL)
	{
		m_dcBk.CreateCompatibleDC(&clDC);
		m_bmpBk.CreateCompatibleBitmap(&clDC, rect.Width(), rect.Height());
		m_pbmpOldBk = m_dcBk.SelectObject(&m_bmpBk);
		m_dcBk.BitBlt(0, 0, rect.Width(), rect.Height(), &clDC, rect1.left, rect1.top, SRCCOPY);
	}

	pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &m_dcBk, 0, 0, SRCCOPY);
} // End of PaintBk


HBRUSH CButtonST::CtlColor(CDC* pDC, UINT nCtlColor) 
{
	return (HBRUSH)::GetStockObject(NULL_BRUSH); 
} // End of CtlColor


void CButtonST::OnSysColorChange() 
{
	CButton::OnSysColorChange();

	m_dcBk.DeleteDC();
	m_bmpBk.DeleteObject();	
} // End of OnSysColorChange


#undef ST_USE_MEMDC
#undef ST_LIKEIE

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣中文一区| 亚洲人成精品久久久久| 亚洲国产精品精华液2区45| 亚洲视频网在线直播| 亚洲国产欧美在线| 美女mm1313爽爽久久久蜜臀| 国产成人一级电影| 欧美色欧美亚洲另类二区| 日韩欧美色综合网站| 国产精品情趣视频| 午夜欧美电影在线观看| 国产精品88av| 欧美精品久久久久久久久老牛影院| 亚洲精品一区二区三区影院| 亚洲视频图片小说| 精品一区二区三区在线观看国产| 91在线一区二区| 日韩一级免费一区| 亚洲人xxxx| 精品亚洲国内自在自线福利| 在线观看国产91| 久久九九影视网| 午夜在线成人av| 成人激情免费电影网址| 欧美一区二视频| 一区二区三区在线免费观看| 国产资源精品在线观看| 欧美日韩亚洲国产综合| 国产精品久久久久久妇女6080| 奇米一区二区三区| 一道本成人在线| 国产日韩欧美综合在线| 午夜激情一区二区| 91色porny在线视频| 26uuu精品一区二区三区四区在线| 亚洲综合色噜噜狠狠| 福利一区二区在线| 日韩精品一区二区三区四区| 亚洲制服欧美中文字幕中文字幕| 丁香激情综合国产| 欧美大胆一级视频| 亚洲综合色丁香婷婷六月图片| av在线这里只有精品| 久久影院视频免费| 奇米四色…亚洲| 欧美人与z0zoxxxx视频| 一区二区三区在线看| 成人av电影观看| 国产视频一区在线观看| 看片网站欧美日韩| 在线播放欧美女士性生活| 亚洲一区视频在线观看视频| 99riav久久精品riav| 国产欧美精品区一区二区三区 | 不卡视频一二三| 亚洲精品在线观| 久久国产尿小便嘘嘘| 欧美老肥妇做.爰bbww| 亚洲一区二区三区视频在线播放 | 亚洲欧美日韩一区| 成人av网址在线| 欧美国产日本韩| 成人妖精视频yjsp地址| 2020日本不卡一区二区视频| 另类小说视频一区二区| 欧美一区二区网站| 日日噜噜夜夜狠狠视频欧美人| 欧洲一区二区av| 亚洲一区二区3| 欧美在线免费播放| 亚洲va在线va天堂| 欧美人与z0zoxxxx视频| 日精品一区二区三区| 884aa四虎影成人精品一区| 午夜精品在线视频一区| 欧美精品一二三四| 日韩影视精彩在线| 日韩欧美中文字幕公布| 精品一区二区在线免费观看| 337p粉嫩大胆色噜噜噜噜亚洲| 国产在线精品免费| 国产午夜精品在线观看| 99视频一区二区| 亚洲欧美激情一区二区| 日本高清免费不卡视频| 午夜影视日本亚洲欧洲精品| 欧美一区二区三区四区久久| 久久精品国内一区二区三区| 2欧美一区二区三区在线观看视频| 国产成人日日夜夜| 国产精品动漫网站| 91官网在线观看| 天天影视涩香欲综合网| 欧美变态tickle挠乳网站| 国内精品国产成人| 亚洲欧美自拍偷拍色图| 欧美亚洲丝袜传媒另类| 久久66热re国产| 国产精品乱码一区二区三区软件| 91啪亚洲精品| 免费av网站大全久久| 国产色一区二区| 在线免费不卡视频| 毛片av一区二区三区| 欧美国产一区视频在线观看| 91福利小视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久蜜桃精品| 一本到不卡免费一区二区| 视频一区二区中文字幕| 久久伊人中文字幕| 色综合天天综合在线视频| 日韩精品国产精品| 一区二区三区在线不卡| 欧美一级理论性理论a| 国产激情偷乱视频一区二区三区| 亚洲精品欧美二区三区中文字幕| 69堂成人精品免费视频| 国产91在线看| 香蕉影视欧美成人| 国产精品美日韩| 91精品综合久久久久久| 成人毛片视频在线观看| 调教+趴+乳夹+国产+精品| 中文字幕精品在线不卡| 91精品欧美综合在线观看最新| 国产99一区视频免费| 丝袜脚交一区二区| 国产精品拍天天在线| 日韩一区二区影院| 99国产精品99久久久久久| 老司机一区二区| 亚洲主播在线观看| 国产精品色婷婷| 精品国产制服丝袜高跟| 在线观看视频91| 成人毛片视频在线观看| 精品一区二区影视| 午夜日韩在线观看| 亚洲欧美一区二区三区孕妇| 久久蜜桃av一区二区天堂| 欧美日韩卡一卡二| 99re这里都是精品| 国产大陆亚洲精品国产| 天天操天天色综合| 亚洲免费成人av| 国产精品午夜电影| 久久一区二区三区四区| 337p亚洲精品色噜噜狠狠| 色综合中文字幕国产 | 国产精品天美传媒| 精品欧美久久久| 欧美日本韩国一区| 一本色道久久综合亚洲aⅴ蜜桃| 国产自产高清不卡| 麻豆视频一区二区| 偷拍日韩校园综合在线| 亚洲精品乱码久久久久久久久| 久久久久久久久久美女| 精品少妇一区二区三区免费观看| 国产精品天天看| 久久丝袜美腿综合| 精品久久人人做人人爱| 91精品国产欧美日韩| 欧美日韩在线三区| 欧亚洲嫩模精品一区三区| 91亚洲永久精品| 成人激情文学综合网| 懂色av一区二区三区蜜臀| 国产一区久久久| 精久久久久久久久久久| 看国产成人h片视频| 久久精品国产一区二区三区免费看| 日韩av高清在线观看| 五月天激情综合| 日韩福利视频网| 午夜一区二区三区视频| 亚洲aaa精品| 视频一区在线播放| 日本不卡一区二区三区 | 欧美一卡2卡三卡4卡5免费| 欧美日韩日日骚| 欧美日韩国产一区二区三区地区| 在线看日韩精品电影| 色激情天天射综合网| 欧洲一区二区三区在线| 欧美色图在线观看| 欧美美女视频在线观看| 4hu四虎永久在线影院成人| 日韩一区二区在线播放| 日韩欧美www| 久久综合九色欧美综合狠狠| 国产亚洲制服色| 日本一区二区三区四区在线视频| 国产欧美综合在线| 亚洲色图20p| 亚洲午夜久久久久久久久电影网 | 91精品国产麻豆| 久久综合网色—综合色88| 久久久精品国产99久久精品芒果|