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

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

?? buttonstyle.cpp

?? 魔法單詞學習小軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// ButtonStyle.cpp : implementation file
//

#include "stdafx.h"
#include "MagicWord.h"
#include "ButtonStyle.h"

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

/////////////////////////////////////////////////////////////////////////////
// CButtonStyle

CButtonStyle::CButtonStyle()
{
   m_MouseOnButton = FALSE;
   m_hIconIn = NULL;
   m_hIconOut = NULL;
   m_cxIcon = 0;
   m_cyIcon = 0;
   m_hCursor = 0;
   
   m_bIsFlat = TRUE;             // Default type is "flat" button
   m_bDrawBorder = TRUE;         // Draw border in "flat" button
   m_nAlign = ST_ALIGN_HORIZ;    // Icon is aligned horizontally
   m_bShowText = TRUE;           // Show the text button
   m_bDrawFlatFocus = FALSE;     // For "flat" button don't draw the focus rect

   SetDefInactiveBgColor();
   SetDefInactiveFgColor();
   SetDefActiveBgColor();
   SetDefActiveFgColor();
}

CButtonStyle::~CButtonStyle()
{
   // 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 );
}


BEGIN_MESSAGE_MAP(CButtonStyle, CButton)
	//{{AFX_MSG_MAP(CButtonStyle)
	ON_WM_CAPTURECHANGED()
	ON_WM_KILLFOCUS()
	ON_WM_MOUSEMOVE()
	ON_WM_SETCURSOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CButtonStyle message handlers

void CButtonStyle::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 )
      {
         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 );
   pDC->FillRect( &itemRect, &br );
   
   // Disegno lo sfondo del bottone 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 );
         }
      }
      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 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 
    
#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 );
      
      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 );
      }
   }
}

void CButtonStyle::PreSubclassWindow() 
{
   // Add BS_OWNERDRAW style
   SetButtonStyle( GetButtonStyle() | BS_OWNERDRAW );
	
	CButton::PreSubclassWindow();
}

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

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

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

   if ( m_MouseOnButton = FALSE )
   {
      m_MouseOnButton = FALSE;
      Invalidate();
   }
}

void CButtonStyle::OnMouseMove(UINT nFlags, CPoint point) 
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品一区二区三区精品| 91丝袜国产在线播放| 一个色妞综合视频在线观看| 成人av电影观看| 综合久久综合久久| 在线看一区二区| 午夜精品久久久久久久99樱桃| 欧美理论片在线| 麻豆成人在线观看| 欧美国产日本韩| 91官网在线观看| 日韩精品一二三四| 久久婷婷综合激情| 99精品视频在线观看| 亚洲成人激情自拍| 欧美mv日韩mv国产网站app| 国产成人av电影在线| 亚洲精品乱码久久久久久| 欧美日韩高清影院| 国产精品2024| 亚洲一区影音先锋| 日韩免费一区二区| 99久久婷婷国产精品综合| 亚洲3atv精品一区二区三区| 精品国产乱子伦一区| 成人av动漫在线| 蜜臀av性久久久久蜜臀aⅴ| 国产精品嫩草久久久久| 欧美日韩国产一区| 成人一道本在线| 亚洲一级二级在线| 久久久久青草大香线综合精品| 色偷偷88欧美精品久久久| 日韩影院免费视频| 国产精品成人一区二区艾草| 欧美精品日日鲁夜夜添| 成人午夜私人影院| 日本午夜精品一区二区三区电影| 国产清纯在线一区二区www| 欧美色综合网站| 国产91富婆露脸刺激对白| 亚洲成av人片在线观看无码| 中文字幕欧美激情| 欧美一区二区在线免费观看| 91丨porny丨国产| 久久97超碰色| 亚洲18影院在线观看| 日本一区二区三区四区| 日韩一级免费一区| 91极品美女在线| 国产成人av电影在线| 久久精品噜噜噜成人av农村| 亚洲国产色一区| 国产精品电影一区二区| 久久先锋影音av鲁色资源| 亚洲精品v日韩精品| 久久久蜜桃精品| 欧美一级精品在线| 欧美三级欧美一级| 972aa.com艺术欧美| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 五月天精品一区二区三区| 亚洲国产精品黑人久久久| 精品国产123| 7777精品伊人久久久大香线蕉超级流畅 | 欧美精品丝袜久久久中文字幕| 91丨九色丨蝌蚪富婆spa| 国产1区2区3区精品美女| 韩国女主播一区| 九九国产精品视频| 奇米影视7777精品一区二区| 婷婷六月综合亚洲| 一区二区三区四区视频精品免费 | 国内成人精品2018免费看| 日韩av一二三| 日本不卡免费在线视频| 日产欧产美韩系列久久99| 亚洲成人777| 在线观看视频一区二区欧美日韩| a4yy欧美一区二区三区| 成人sese在线| 91在线视频在线| 色婷婷一区二区| 欧美性感一类影片在线播放| 欧美天堂一区二区三区| 欧美区在线观看| 精品奇米国产一区二区三区| 日韩欧美精品三级| www国产成人免费观看视频 深夜成人网| 日韩欧美国产不卡| 久久人人爽爽爽人久久久| 国产亚洲欧美在线| 国产精品不卡视频| 一区二区三区不卡视频| 亚洲一区二区视频在线观看| 亚洲成a人片综合在线| 日本aⅴ免费视频一区二区三区| 麻豆91免费看| 高清视频一区二区| 色婷婷综合激情| 欧美一区二视频| 亚洲国产激情av| 亚洲精品国产一区二区三区四区在线| 亚洲超丰满肉感bbw| 精品一区二区三区av| 成人晚上爱看视频| 欧美午夜在线观看| 日韩欧美三级在线| 中文字幕av在线一区二区三区| 伊人一区二区三区| 蜜臀久久99精品久久久画质超高清 | 色噜噜狠狠色综合欧洲selulu| 欧美日韩日日夜夜| 精品久久国产字幕高潮| 亚洲欧洲日本在线| 欧美午夜在线一二页| 精品国产乱码久久| 亚洲欧美日韩综合aⅴ视频| 偷偷要91色婷婷| 国产a精品视频| 欧美日本一道本| 国产精品天美传媒| 六月婷婷色综合| 一本一道波多野结衣一区二区| 欧美一三区三区四区免费在线看 | 日韩精品资源二区在线| 国产精品污网站| 免费一级欧美片在线观看| fc2成人免费人成在线观看播放 | 欧美日精品一区视频| 久久网站最新地址| 天天色天天操综合| 成人精品鲁一区一区二区| 91麻豆精品国产91久久久使用方法| 国产丝袜在线精品| 青青青伊人色综合久久| 一本到不卡免费一区二区| 国产亚洲一本大道中文在线| 日韩激情在线观看| 色综合激情久久| 国产亚洲综合在线| 捆绑调教一区二区三区| 欧美日韩一区二区三区免费看| 欧美国产一区视频在线观看| 蜜桃传媒麻豆第一区在线观看| 在线亚洲免费视频| 18欧美乱大交hd1984| 国产在线精品一区在线观看麻豆| 欧美一区二区三区小说| 一级精品视频在线观看宜春院 | av成人老司机| 久久人人爽人人爽| 久久99久久久欧美国产| 制服丝袜成人动漫| 午夜精品福利一区二区三区av| 91麻豆自制传媒国产之光| 国产欧美日韩亚州综合 | 艳妇臀荡乳欲伦亚洲一区| 成人开心网精品视频| 久久久91精品国产一区二区精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美一区二区三区白人| 亚洲激情自拍偷拍| 99视频在线观看一区三区| 国产亚洲欧美日韩日本| 日本免费新一区视频| 欧美久久久久久久久| 午夜精品久久久久久| 欧美精品在线一区二区三区| 中文字幕一区视频| 99久久精品一区| 亚洲欧美一区二区三区孕妇| 99riav一区二区三区| 亚洲免费伊人电影| 欧美三级韩国三级日本一级| 亚洲影视在线播放| 亚洲免费av在线| 色噜噜久久综合| 香港成人在线视频| 日韩欧美成人一区| 国产一区二区0| 国产精品女上位| 色婷婷久久99综合精品jk白丝| 亚洲韩国一区二区三区| 欧美一区三区四区| 国产成人午夜精品影院观看视频| 国产精品久久久久久妇女6080| 91在线码无精品| 午夜激情一区二区| 精品国产免费人成电影在线观看四季| 国产成人av资源| 1区2区3区欧美| 欧美一区二区三区啪啪| 寂寞少妇一区二区三区| 国产精品欧美极品| 欧美日韩在线精品一区二区三区激情| 免费观看一级欧美片| 国产无人区一区二区三区| 色综合天天狠狠| 麻豆精品视频在线|