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

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

?? coolbar.cpp

?? Resource editor base speadrum Chinese mobile
?? CPP
字號:
// 
// FileName: CoolBar.cpp
// anli.wei 整理完成
// Copyright (C) 2004 Spreadtrum Corporation
// All rights reserved.

#include "stdafx.h"
#include "SizingControlBar.h"
#include "CoolBar.h"

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

/////////////////////////////////////////////////////////////////////////
// CSCBButton

CSCBButton::CSCBButton()
{
    m_bRaised     = FALSE;
    m_bPushed     = FALSE;

	m_clrForeGrnd = RGB(255, 255, 255); // white color
}

void CSCBButton::Paint(CDC* pDC)
{
	_ASSERTE( pDC != NULL );

    const CRect lpRect = GetRect();

    if (m_bPushed)
	{
        pDC->Draw3dRect( lpRect, ::GetSysColor(COLOR_BTNSHADOW),
                         ::GetSysColor(COLOR_BTNHIGHLIGHT) );
	}
    else if (m_bRaised)
	{
        pDC->Draw3dRect( lpRect, ::GetSysColor(COLOR_BTNHIGHLIGHT),
                         ::GetSysColor(COLOR_BTNSHADOW) );
	}

    COLORREF clrOldTextColor = pDC->GetTextColor();
    int      nPrevBkMode     = pDC->SetBkMode(TRANSPARENT);

    CFont font;
    int ppi = pDC->GetDeviceCaps(LOGPIXELSX);
    int pointsize = MulDiv(80, 96, ppi); // 6 points at 96 ppi
    // don't modified "Marlett", becuase we will look like "x" button
	// add by anli.wei
	font.CreatePointFont(pointsize, _T("Marlett"));  
    CFont* oldfont = pDC->SelectObject(&font);

	pDC->SetTextColor( m_clrForeGrnd );
	const _TCHAR szText[] = _T("r");
    pDC->TextOut(m_ptOrg.x + 1, m_ptOrg.y + 1, szText, _tcslen(szText)); // x-like

    pDC->SelectObject(oldfont);
    pDC->SetBkMode(nPrevBkMode);
    pDC->SetTextColor(clrOldTextColor);
	
	font.DeleteObject();
}

/////////////////////////////////////////////////////////////////////////
// CCoolBar

const COLORREF CCoolBar::CLR_GRIPPER_FORE = RGB( 255, 255, 255 );
const COLORREF CCoolBar::CLR_GRIPPER_BACK = RGB( 98, 115, 156 );

IMPLEMENT_DYNCREATE(CCoolBar, CSizingControlBar);

CCoolBar::CCoolBar()
{
	m_bHasGripper = TRUE;
	m_bActive     = FALSE;
    m_nGripper    = 12;
	m_hNotifyWnd  = NULL;
	
	m_clrGripperFore = CLR_GRIPPER_FORE;
	m_clrGripperBack = CLR_GRIPPER_BACK;
}

CCoolBar::~CCoolBar()
{
}

BEGIN_MESSAGE_MAP(CCoolBar, CSizingControlBar)
    //{{AFX_MSG_MAP(CCoolBar)
    ON_WM_NCLBUTTONUP()
    ON_WM_NCHITTEST()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////
// CCoolBar message handlers

// 目前我們只使用一個child,且不使用lpszLabel和hIcon
BOOL CCoolBar::AddPage( CRuntimeClass *pRtc, CCreateContext *pContext /* = NULL */,
					    LPCTSTR lpszLabel /* = NULL */, HICON hIcon /* = NULL */ )
{
	ASSERT_VALID(this);
	_ASSERTE( this->m_hWnd != NULL );
	_ASSERTE( pRtc != NULL );
	_ASSERTE( pRtc->IsDerivedFrom(RUNTIME_CLASS(CWnd)));
	_ASSERTE( AfxIsValidAddress(pRtc, sizeof(CRuntimeClass), FALSE) );
	_ASSERTE( lpszLabel == NULL && hIcon == NULL );
	_ASSERTE( m_pActiveWnd == NULL );

	CWnd * pWnd = (CWnd *)pRtc->CreateObject();
	if( NULL == pWnd  )
	{
		TRACE1( "Warning: Dynamic create of wnd type %hs failed.\n",
				pRtc->m_lpszClassName );
		return FALSE;
	}
    ASSERT_VALID( pWnd );

	CRect rect(0, 0, 0, 0);
	if( !pWnd->Create(NULL, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 
		              rect, this, 0, pContext) ) 
	{
		TRACE0("Warning: could not create wnd for frame.\n");
		return FALSE;    
	}

	pWnd->ModifyStyleEx( 0, WS_EX_CLIENTEDGE, SWP_FRAMECHANGED );
	
	m_pActiveWnd = pWnd;

	return TRUE;
}

BOOL CCoolBar::Create( LPCTSTR lpszWindowName, CWnd* pParentWnd, 
					   const CSize &sizeDefault, UINT nID, 
					   BOOL  bHasGripper /* = FALSE */,
					   DWORD dwStyle     /* = WS_CHILD | WS_VISIBLE | CBRS_TOP */ )
{
	ASSERT_VALID(pParentWnd);

	m_hNotifyWnd     = pParentWnd->m_hWnd;
    m_bHasGripper    = bHasGripper;
    m_strGripperText = lpszWindowName;

    return CSizingControlBar::Create(lpszWindowName, pParentWnd, 
		                             sizeDefault, nID, bHasGripper, dwStyle);
}

BOOL CCoolBar::Create( LPCTSTR lpszWindowName, CWnd* pParentWnd, UINT nID,
                       DWORD dwStyle /* = WS_CHILD | WS_VISIBLE | CBRS_TOP */ )
{
	ASSERT_VALID(pParentWnd);

	m_hNotifyWnd     = pParentWnd->m_hWnd;
    m_strGripperText = lpszWindowName;

	return CSizingControlBar::Create(lpszWindowName, pParentWnd, nID, dwStyle);
}

/////////////////////////////////////////////////////////////////////////
// Mouse Handling
//
void CCoolBar::OnNcLButtonUp(UINT nHitTest, CPoint point)
{
    if(nHitTest == HTCLOSE)
	{
        m_pDockSite->ShowControlBar(this, FALSE, FALSE); // hide
	}

    CSizingControlBar::OnNcLButtonUp(nHitTest, point);
}

void CCoolBar::NcCalcClient(LPRECT pRect, UINT nDockBarID)
{
	_ASSERTE( pRect != NULL );

    CRect rcBar(pRect); // save the bar rect

    // subtract edges
    CSizingControlBar::NcCalcClient(pRect, nDockBarID);

	if( IsFloating() )
	{
		return;
	}

    CRect rc(pRect); // the client rect as calculated by the base class

    BOOL bHorz = ( (nDockBarID == AFX_IDW_DOCKBAR_TOP) ||
                   (nDockBarID == AFX_IDW_DOCKBAR_BOTTOM) );

    if (bHorz)
        rc.DeflateRect(m_nGripper, 0, 0, 0);
    else
        rc.DeflateRect(0, m_nGripper, 0, 0);

    // set position for the "x" (hide bar) button
    CPoint ptOrgBtn;
    if (bHorz)
        ptOrgBtn = CPoint(rc.left - 14, rc.top);
    else
        ptOrgBtn = CPoint(rc.right - 12, rc.top - 14);

    m_btnHide.Move(ptOrgBtn - rcBar.TopLeft());

    *pRect = rc;
}

void CCoolBar::NcPaintGripper(CDC* pDC, LPCRECT pRect)
{
    _ASSERTE( pDC != NULL && pRect != NULL );
    
	if( IsFloating() )
	{
		return;
	}

	if( m_bHasGripper )
	{
		// compute the caption rectangle
		BOOL  bHorz  = IsHorzDocked();
		CRect rcGrip = pRect;
		CRect rcBtn  = m_btnHide.GetRect();
		if (bHorz)
		{   // right side gripper
			rcGrip.left -= m_nGripper  + 1;
			rcGrip.right = rcGrip.left + m_nGripper - 1;
			rcGrip.top   = rcBtn.top;
		}
		else
		{   // gripper at top
			rcGrip.top   -= m_nGripper + 1;
			rcGrip.bottom = rcGrip.top + m_nGripper - 1;
			rcGrip.right  = rcBtn.right ;
		}
		rcGrip.InflateRect(bHorz ? 1 : 0, bHorz ? 0 : 1);
		
		// draw the caption background
		COLORREF clrCptn = m_clrGripperBack;

		// 非活動狀態
		//if( !m_bActive )
		//{
		//	clrCptn = m_clrGripperBack / 2;
		//}

		pDC->FillSolidRect(&rcGrip, clrCptn); 

		// draw the caption text - first select a font
		CFont font;
		int ppi = pDC->GetDeviceCaps(LOGPIXELSX);
		int pointsize = MulDiv(96, 96, ppi); // 8.5 points at 96 ppi
		LOGFONT lf;
		::SystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(LOGFONT), &lf, 0);
		
		BOOL bFont = font.CreatePointFont(pointsize, lf.lfFaceName);
		if (bFont)
		{
			// get the text color
			COLORREF clrCptnText = m_bActive ? m_clrGripperFore : m_clrGripperFore / 3;
          			
			int nOldBkMode = pDC->SetBkMode(TRANSPARENT);
			COLORREF clrOldText = pDC->SetTextColor(clrCptnText);
			
			if (bHorz)
			{
				// rotate text 90 degrees CCW if horizontally docked
				LOGFONT lf;
				font.GetLogFont(&lf);
				font.DeleteObject();
				lf.lfEscapement = 900;
				font.CreateFontIndirect(&lf);
			}
			
			CFont* pOldFont = pDC->SelectObject(&font);
			
			CPoint ptOrg = bHorz ?
				           CPoint(rcGrip.left - 2, rcGrip.bottom - 2) :
                           CPoint(rcGrip.left + 2, rcGrip.top - 2);
			
			pDC->ExtTextOut(ptOrg.x, ptOrg.y, ETO_CLIPPED, rcGrip, m_strGripperText, NULL);
			
			pDC->SelectObject(pOldFont);
			pDC->SetBkMode(nOldBkMode);
			pDC->SetTextColor(clrOldText);
			font.DeleteObject();
		}
	}
	else
	{
		CRect gripper = pRect;
		CRect rcbtn   = m_btnHide.GetRect();
		BOOL  bHorz   = IsHorzDocked();
		
		gripper.DeflateRect(1, 1);
		if (bHorz)
		{   // gripper at left
			gripper.left -= m_nGripper;
			gripper.right = gripper.left + 3;
			gripper.top = rcbtn.bottom + 3;
		}
		else
		{   // gripper at top
			gripper.top -= m_nGripper;
			gripper.bottom = gripper.top + 3;
			gripper.right = rcbtn.left - 3;
		}
		
		pDC->Draw3dRect(gripper, ::GetSysColor(COLOR_BTNHIGHLIGHT),
			::GetSysColor(COLOR_BTNSHADOW));
		
		gripper.OffsetRect(bHorz ? 3 : 0, bHorz ? 0 : 3);
		
		pDC->Draw3dRect(gripper, ::GetSysColor(COLOR_BTNHIGHLIGHT),
			::GetSysColor(COLOR_BTNSHADOW));
	}

	// draw the button
	m_btnHide.Paint(pDC);
}

UINT CCoolBar::OnNcHitTest(CPoint point)
{
    UINT nRet = CSizingControlBar::OnNcHitTest(point);
    if(nRet != HTCLIENT)
        return nRet;

	CRect rcBar;
    GetWindowRect(rcBar);

    CRect rc = m_btnHide.GetRect();
    rc.OffsetRect(rcBar.TopLeft());

    if (rc.PtInRect(point))
        return HTCLOSE;

    return HTCLIENT;
}

/////////////////////////////////////////////////////////////////////////
// CCoolBar implementation helpers

void CCoolBar::OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler)
{
    UNUSED_ALWAYS(bDisableIfNoHndler);
    UNUSED_ALWAYS(pTarget);

	if( IsFloating() )
	{
		return;
	}

    BOOL bNeedPaint = FALSE;

    CPoint pt;
    ::GetCursorPos(&pt);
    BOOL bHit         = (OnNcHitTest(pt) == HTCLOSE);
    BOOL bLButtonDown = (::GetKeyState(VK_LBUTTON) < 0);

    BOOL bWasPushed     = m_btnHide.m_bPushed;
    m_btnHide.m_bPushed = bHit && bLButtonDown;

    BOOL bWasRaised     = m_btnHide.m_bRaised;
    m_btnHide.m_bRaised = bHit && !bLButtonDown;

	CWnd * pFocus   = GetFocus();
    BOOL bActiveOld = m_bActive;

    m_bActive = (pFocus->GetSafeHwnd() && IsChild(pFocus));
    if (m_bActive != bActiveOld)
        bNeedPaint = TRUE;

    bNeedPaint |= ( (m_btnHide.m_bPushed ^ bWasPushed) ||
                    (m_btnHide.m_bRaised ^ bWasRaised) );

    if(bNeedPaint)
	{
        SendMessage(WM_NCPAINT);
	}
}

BOOL CCoolBar::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
	_ASSERTE( ::IsWindow(m_hNotifyWnd) );

	// 將WM_NOTIFY消息轉交給消息通知窗口處理
	::SendMessage(m_hNotifyWnd, WM_NOTIFY, wParam, lParam);

	*pResult = 0;
	
	return TRUE;
}

void CCoolBar::SetNotifyWindow(HWND hNotifyWnd)
{
	_ASSERTE( ::IsWindow(m_hNotifyWnd) );

	m_hNotifyWnd = hNotifyWnd;
}

void CCoolBar::SetGripperInfo( LPCTSTR pszText, COLORREF clrForeGrnd, COLORREF clrBackGrnd )
{
	if( pszText == NULL )
	{
		m_strGripperText.Empty();
	}
	else
	{
		m_strGripperText = pszText;
	}

	m_clrGripperFore = clrForeGrnd;
	m_clrGripperBack = clrBackGrnd;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九精品视频在线看| 欧美日韩你懂得| 欧美日韩免费视频| 精品国产三级电影在线观看| 亚洲欧洲在线观看av| 美女视频黄免费的久久| 91视频精品在这里| 中文字幕精品一区二区精品绿巨人 | 中文字幕免费在线观看视频一区| 国产日产精品一区| 奇米精品一区二区三区在线观看| 色综合天天综合网天天看片| 久久婷婷综合激情| 麻豆久久久久久久| 欧美高清精品3d| 亚洲午夜一区二区| 色av成人天堂桃色av| 亚洲婷婷在线视频| av电影天堂一区二区在线| 久久综合狠狠综合| 麻豆成人免费电影| 日韩亚洲欧美在线| 视频一区国产视频| 欧美精品一级二级三级| 亚洲综合色网站| 91黄色在线观看| 亚洲一级二级三级| 色94色欧美sute亚洲线路一久| 综合久久综合久久| 91热门视频在线观看| 亚洲欧洲精品一区二区精品久久久| 国产成人午夜高潮毛片| 国产精品网站导航| av一区二区不卡| 亚洲黄网站在线观看| 欧美丝袜自拍制服另类| 日本在线观看不卡视频| 日韩一区二区在线观看视频播放| 青青青伊人色综合久久| 日韩精品一区二区三区视频| 韩日欧美一区二区三区| 欧美高清在线一区| 91原创在线视频| 午夜精品一区二区三区免费视频 | 精品日韩一区二区三区 | 国产亚洲欧洲997久久综合| 国产·精品毛片| 亚洲人成7777| 欧美一区二区视频在线观看2020 | 91免费版在线| 午夜精品久久久久久久久久久| 日韩午夜三级在线| 国产激情视频一区二区在线观看| 日本一区二区久久| 色94色欧美sute亚洲13| 日韩电影网1区2区| 国产精品免费久久久久| 日本精品视频一区二区三区| 奇米在线7777在线精品| 欧美国产丝袜视频| 欧美在线观看视频一区二区三区| 日韩黄色一级片| 欧美激情一区二区三区全黄| 在线观看日韩av先锋影音电影院| 人人精品人人爱| 国产精品免费av| 欧美日本一区二区三区| 国产综合色视频| 一区二区三区高清| 久久亚洲影视婷婷| 欧美午夜电影网| 成人免费视频一区二区| 亚洲bt欧美bt精品| 国产精品色哟哟| 欧美一区二区精美| 色综合色狠狠综合色| 国产麻豆精品久久一二三| 亚洲国产欧美在线| 国产精品二三区| 欧美变态口味重另类| 欧洲一区二区三区免费视频| 国模冰冰炮一区二区| 香蕉影视欧美成人| 亚洲女人****多毛耸耸8| 久久一区二区三区四区| 欧美日韩二区三区| 成人app网站| 国产麻豆精品视频| 免费成人美女在线观看| 亚洲成人自拍网| 亚洲天堂精品视频| 国产精品―色哟哟| 久久人人超碰精品| 欧美xxxxxxxx| 日韩视频免费观看高清在线视频| 91久久精品网| 91电影在线观看| 91亚洲精品一区二区乱码| 国产成人午夜99999| 狠狠色丁香久久婷婷综| 日日摸夜夜添夜夜添国产精品| 尤物av一区二区| 亚洲久草在线视频| 亚洲欧美日韩电影| 国产精品成人在线观看| 久久夜色精品国产欧美乱极品| 日韩欧美一卡二卡| 欧美电视剧免费观看| 欧美一区二区精美| 欧美一区二区三区视频在线| 91精品国产色综合久久久蜜香臀| 欧美日韩一区在线| 欧美久久婷婷综合色| 欧美精品在欧美一区二区少妇| 欧美高清视频一二三区 | 欧美午夜影院一区| 欧洲生活片亚洲生活在线观看| 色综合久久久久综合| 色一情一伦一子一伦一区| 91首页免费视频| 欧美福利视频导航| 欧美一区二区性放荡片| 精品美女在线播放| 精品对白一区国产伦| 久久精品欧美一区二区三区不卡| 国产清纯白嫩初高生在线观看91 | 丝袜美腿一区二区三区| 日本午夜精品一区二区三区电影 | 欧美大度的电影原声| 久久夜色精品国产欧美乱极品| 久久网站最新地址| 亚洲欧洲日韩综合一区二区| 亚洲免费在线视频| 一区二区三区不卡视频在线观看| 亚洲国产精品麻豆| 美女脱光内衣内裤视频久久影院| 精品一区二区在线免费观看| 国产精品一区免费在线观看| 成人毛片在线观看| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩一区二区在线观看视频 | 国产一区二区电影| 色婷婷精品大视频在线蜜桃视频| 欧美午夜精品久久久久久超碰| 555www色欧美视频| 国产精品欧美一区二区三区| 一区二区三区欧美视频| 男女男精品网站| 97精品久久久午夜一区二区三区 | 免费成人小视频| 91片黄在线观看| 日韩精品一区二区在线观看| 亚洲国产精品二十页| 日韩成人精品在线| av一区二区久久| 欧美大片一区二区三区| 综合久久久久综合| 国内久久精品视频| 欧美性高清videossexo| 国产清纯白嫩初高生在线观看91| 亚洲国产一区二区视频| 国产成人丝袜美腿| 日韩午夜在线观看视频| 一区二区三区电影在线播| 国产黄色精品网站| 欧美一区二区精品久久911| 亚洲免费观看高清在线观看| 狠狠久久亚洲欧美| 69成人精品免费视频| 亚洲精品国产无天堂网2021 | 91福利国产成人精品照片| 久久―日本道色综合久久| 午夜av区久久| 色综合天天综合网国产成人综合天 | 久久精品一区二区三区四区| 亚洲女同ⅹxx女同tv| 国产精品一二三区在线| 日韩欧美久久久| 日日嗨av一区二区三区四区| 99riav一区二区三区| 欧美国产一区视频在线观看| 紧缚奴在线一区二区三区| 91精品欧美一区二区三区综合在| 一区二区三区欧美久久| 成人黄色电影在线| 国产午夜精品久久久久久久 | 奇米综合一区二区三区精品视频| 日本黄色一区二区| 日韩伦理电影网| av网站一区二区三区| 国产精品久久久久久久久免费丝袜 | 国产一区二区三区久久久| 91麻豆精品国产| 婷婷开心激情综合| 精品视频在线免费看| 亚洲免费在线播放| 日本韩国一区二区三区视频| 一区二区三区日本| 精品视频资源站| 日本系列欧美系列|