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

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

?? toolbarex.cpp

?? 在GB碼和Big5碼間轉換,在GB碼和Big5碼間轉換
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				dc.FillSolidRect(rc,m_clrBtnFace);

				// it seems, that CDC::Draw3dRect() changes the background color
				COLORREF clrBk = dc.GetBkColor();

				if( bBtnDown )
					// draw a pressed button
					dc.Draw3dRect(rc, m_clrBtnShadow, m_clrBtnHilight);
				else if( rc.PtInRect(cursor) && ! bBtnDown && bBtnEnabled )
					// draw a normal button
					dc.Draw3dRect(rc, m_clrBtnHilight, m_clrBtnShadow);
				else if( ! bBtnDown && bBtnEnabled )
					// Draw an invisible rect around the button.
					// This prevents us from erasing the background
					// if the button was formed before
					// (that would cause the button to flicker ...)
					dc.Draw3dRect(rc, m_clrBtnFace, m_clrBtnFace);
				
				dc.SetBkColor(clrBk);

				// the point where to start with the image
				CPoint pt(rc.left + m_sizeOffset.cx + bBtnDown,
						  rc.top + m_sizeOffset.cy + bBtnDown);
				
				imglist.Draw(&dc, nBitmap, pt, ILD_NORMAL);
				CString strText = GetButtonText(i);
				if( strText.GetLength() ) {
					CRect rectText(
						rc.left+3+bBtnDown,
						rc.top+m_sizeOffset.cy+m_sizeImage.cy+1+bBtnDown,
						rc.right-3+bBtnDown,
						rc.bottom-3+bBtnDown
					);
					dc.DrawText(strText, rectText, DT_CENTER|DT_VCENTER|DT_NOCLIP);
				}
				
				if( ! bBtnEnabled )
					// gray out that button
					DrawDisabledButton(dc, rc);

				cdrw.NotifyItemPostPaint(i);
			}
		}

		dc.SelectObject(pOldFont);

		if( ! m_bDeleteImgList )
			imglist.Detach();

		// last but not least: inform the parent for end of painting
		cdrw.NotifyPostPaint();
	} else
		// classic mode (or couldn't receive imagelist)
		CToolBar::OnPaint();
}


void CToolBarEx :: DrawDisabledButton( CDC & dc, const CRect & rc ) const {
	// create a monochrome memory DC
	CDC ddc;
	ddc.CreateCompatibleDC(0);
	CBitmap bmp;
	bmp.CreateCompatibleBitmap(&ddc, rc.Width(), rc.Height());
	CBitmap * pOldBmp = ddc.SelectObject(&bmp);
	
	// build a mask
	ddc.PatBlt(0, 0, rc.Width(), rc.Height(), WHITENESS);
	dc.SetBkColor(m_clrBtnFace);
	ddc.BitBlt(0, 0, rc.Width(), rc.Height(), &dc, rc.left, rc.top, SRCCOPY);
	dc.SetBkColor(m_clrBtnHilight);
	ddc.BitBlt(0, 0, rc.Width(), rc.Height(), &dc, rc.left, rc.top, SRCPAINT);

	// Copy the image from the toolbar into the memory DC
	// and draw it (grayed) back into the toolbar.
	dc.FillSolidRect(rc.left, rc.top, rc.Width(), rc.Height(), m_clrBtnFace);
	dc.SetBkColor(RGB(0, 0, 0));
	dc.SetTextColor(RGB(255, 255, 255));
	CBrush brShadow, brHilight;
	brHilight.CreateSolidBrush(m_clrBtnHilight);
	brShadow.CreateSolidBrush(m_clrBtnShadow);
	CBrush * pOldBrush = dc.SelectObject(&brHilight);
	dc.BitBlt(rc.left+1, rc.top+1, rc.Width(), rc.Height(), &ddc, 0, 0, 0x00E20746L);
	dc.SelectObject(&brShadow);
	dc.BitBlt(rc.left, rc.top, rc.Width(), rc.Height(), &ddc, 0, 0, 0x00E20746L);
	
	// reset DCs
	dc.SelectObject(pOldBrush);
	ddc.SelectObject(pOldBmp);
	ddc.DeleteDC();

	bmp.DeleteObject();
}


void CToolBarEx :: DrawSeparator( CDC & dc, CRect & rc ) const {
    BOOL bHorz = ((m_dwStyle & CBRS_ORIENT_HORZ) != 0) ? TRUE : FALSE;
	// make sure, this separator is not a placeholder for
	// another control.
	if( rc.Width() <= 8 ) {
		if( bHorz ) {
			// draw the separator bar in the middle
			int x = (rc.left + rc.right) / 2;
			rc.left = x-1; rc.right = x+1;
			dc.Draw3dRect(
				rc,
				m_clrBtnShadow,
				m_clrBtnHilight
			);
		} else {
			// draw the separator bar in the middle
			rc.left = rc.left - m_sizeButton.cx;
			rc.right = rc.left + m_sizeButton.cx;
			rc.top = rc.bottom+1;
			rc.bottom = rc.top+3;
			int y = (rc.top+rc.bottom)/2;
			rc.top = y-1; rc.bottom = y+1;
			dc.Draw3dRect(
				rc,
				m_clrBtnShadow,
				m_clrBtnHilight
			);
		}
	}
}


void CToolBarEx :: DrawGripper( CDC & dc ) const { 
    if( m_dwStyle & CBRS_FLOATING )
		return;		// no gripper if floating

	CRect gripper;
	GetWindowRect(gripper);
	ScreenToClient(gripper);
	gripper.OffsetRect(-gripper.left, -gripper.top);

	if( m_dwStyle & CBRS_ORIENT_HORZ ) {
		// gripper at left
		gripper.DeflateRect(4, 4);
		gripper.right = gripper.left+3;
        dc.Draw3dRect(
			gripper,
			m_clrBtnHilight,
            m_clrBtnShadow
		);
		gripper.OffsetRect(3, 0);
        dc.Draw3dRect(
			gripper,
			m_clrBtnHilight,
            m_clrBtnShadow
		);
	} else {
		// gripper at top
		gripper.DeflateRect(4, 4);
		gripper.bottom = gripper.top+3;
		dc.Draw3dRect(
			gripper,
			m_clrBtnHilight,
            m_clrBtnShadow
		);
		gripper.OffsetRect(0, 3);
        dc.Draw3dRect(
			gripper,
			m_clrBtnHilight,
            m_clrBtnShadow
		);
	}
}

void CToolBarEx :: OnUpdateCmdUI( CFrameWnd* pTarget, BOOL bDisableIfNoHndler ) {
	if( m_bFlatLook ) {
		// save current styles
		register const int nBtn = GetToolBarCtrl().GetButtonCount();
		register int nIdx;
		for( nIdx = 0; nIdx < nBtn; ++nIdx )
			m_Styles.SetAtGrow(nIdx, GetButtonStyle(nIdx));

		// do base class processing
		CToolBar::OnUpdateCmdUI(pTarget,bDisableIfNoHndler);

		//check wether styles have been changed
		for( nIdx = 0; nIdx < nBtn; ++nIdx ) {
			if( m_Styles[nIdx] != GetButtonStyle(nIdx) ) {
				// invalidate that button
				CRect rc;
				GetItemRect(nIdx, rc);
				InvalidateRect(rc);
			}
		}
	} else
		// simply delegate
		CToolBar::OnUpdateCmdUI(pTarget,bDisableIfNoHndler);
}

void CToolBarEx::OnSysColorChange() 
{
	CToolBar::OnSysColorChange();

	m_clrBtnFace    = ::GetSysColor(COLOR_BTNFACE);
	m_clrBtnHilight = ::GetSysColor(COLOR_BTNHILIGHT);
	m_clrBtnShadow  = ::GetSysColor(COLOR_BTNSHADOW);
}


void CToolBarEx::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) 
{
	CToolBar::OnNcCalcSize(bCalcValidRects, lpncsp);
	// adjust non-client area for gripper at left or top
	if( m_dwStyle & CBRS_ORIENT_HORZ ) {
		lpncsp->rgrc[0].left += 4;
		lpncsp->rgrc[0].right += 4;
	} else {
		lpncsp->rgrc[0].top += 6;
		lpncsp->rgrc[0].bottom += 6;
	}
}


void CToolBarEx::OnMouseMove(UINT nFlags, CPoint point) 
{
	if( m_bFlatLook ) {
		register const int nBtn = GetToolBarCtrl().GetButtonCount();
		const int nLastBtn = m_nLastBtn;
		m_nLastBtn = -1;

		for( register int i = 0 ; i < nBtn ; ++i ) {
			CRect rc;
			GetItemRect(i, rc);

			const BOOL bBtnEnabled = GetToolBarCtrl().IsButtonEnabled(int(GetItemID(i)));
			const BOOL bSep = GetButtonStyle(i) & TBBS_SEPARATOR;

			if( bSep || ! bBtnEnabled )
				continue;

			const BOOL bHasCursor = rc.PtInRect(point);

			if( bHasCursor && bBtnEnabled ) {
				if( nLastBtn != i ) {
					// force a repaint of the button with the cursor on it
					InvalidateRect(rc, FALSE);
				}
				m_nLastBtn = i;
			} else if( !bHasCursor && i == nLastBtn ) {
				// force a repaint of the last formed button
				InvalidateRect(rc, FALSE);
			}
		}
		// One problem occures with WM_MOUSEMOVE: we cannot detect
		// that the mouse leaves the window. If the mouse moves quick
		// enough, then the last formed button stays visible. To
		// resolve this problem, we set a timer and check, wether
		// the mouse is outside the window ...
		KillTimer(m_uTimerEvent);
		m_uTimerEvent = SetTimer(1, 250, 0);
	}
	CToolBar::OnMouseMove(nFlags, point);
}


void CToolBarEx::OnNcPaint() 
{
	if( m_bFlatLook ) {
		CToolBar::EraseNonClient();
		CWindowDC dc(this);
		DrawGripper(dc);
	} else
		CToolBar::OnNcPaint();
}

void CToolBarEx::OnTimer(UINT nIDEvent) 
{
	if( nIDEvent == m_uTimerEvent && m_nLastBtn >= 0 ) {
		POINT pt;
		::GetCursorPos(&pt);
		CRect rc;
		GetWindowRect(rc);
		if( ! rc.PtInRect(pt) ) {
			GetItemRect(m_nLastBtn, rc);
			InvalidateRect(rc, FALSE);
			m_nLastBtn = -1;
			KillTimer(nIDEvent);
		}
	} else
		CToolBar::OnTimer(nIDEvent);
}

int CToolBarEx::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CToolBar::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// Save the parent at creation time. It may change, if
	// the toolbar is floating; but we want to know of the
	// "real" parent (for notification messages)!
	m_hwndParent = lpCreateStruct->hwndParent;
	
	return 0;
}

#define PADWIDTH(x)	(((x)*8+31)&~31)/8


HIMAGELIST CToolBarEx :: GetImageList() {
	m_bDeleteImgList = FALSE;

	HIMAGELIST hImg = HIMAGELIST(SendMessage(TB_GETIMAGELIST));

#ifdef _DEBUG
	if( hImg == 0 ) {
		TRACE0("CToolBarEx::OnPaint(): could not get image list\n");
	}
#endif

	if( ! hImg ) {
		// comctl32.dll version prior to 4.70 doesn't know
		// anything of the TB_GETIMAGELIST message
		if( m_hbmImageWell != 0 ) {
			// Yup - we have a valid image.
			// But beware: Do not use this bitmap directly.
			// We make the copy by ourself. CopyImage() (for
			// instace) produces inacceptable copies under
			// some circumstances ...
			CImageList imglist;
			CBitmap bmp;
			
			// retrieve the size of the bitmap
			BITMAP bmHdr;
			::GetObject(m_hbmImageWell, sizeof(BITMAP), &bmHdr);
			
			DWORD dwWidth, dwHeight = bmHdr.bmHeight;
			
			if (bmHdr.bmBitsPixel > 8)
				dwWidth = PADWIDTH(bmHdr.bmWidth * 3);
			else
				dwWidth = PADWIDTH(bmHdr.bmWidth);
			
			// copy the bitmap
			CClientDC cdc(this);
			CDC dc1, dc2;
			dc1.CreateCompatibleDC(&cdc);
			dc2.CreateCompatibleDC(&cdc);
			bmp.CreateCompatibleBitmap(&cdc, dwWidth, dwHeight);
			CBitmap * pOBmp = dc1.SelectObject(&bmp);
			HGDIOBJ hOObj = ::SelectObject(dc2.GetSafeHdc(), m_hbmImageWell);
			dc1.BitBlt(0,0,dwWidth,dwHeight,&dc2,0,0,SRCCOPY);
			::SelectObject(dc2.GetSafeHdc(), hOObj);
			dc1.SelectObject(pOBmp);
			dc1.DeleteDC();
			dc2.DeleteDC();

			imglist.Create(m_sizeImage.cx, m_sizeImage.cy,TRUE,dwWidth/m_sizeImage.cx,1);
			imglist.SetBkColor(m_clrBtnFace);
			imglist.Add(&bmp,m_clrBtnFace);
			hImg = imglist.Detach();
			bmp.DeleteObject();
			m_bDeleteImgList = TRUE;
		}
	}

	return hImg;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频在线| 成人avav在线| 欧美人妖巨大在线| 一区二区三区成人在线视频| 亚洲国产综合色| 91黄视频在线| 夜夜嗨av一区二区三区中文字幕 | 欧美日韩一区二区三区四区| 亚洲视频一区在线观看| 91日韩在线专区| 亚洲欧美另类在线| 91免费版在线| 亚洲电影在线免费观看| 欧美老肥妇做.爰bbww视频| 午夜av电影一区| 欧美一区二区三区喷汁尤物| 七七婷婷婷婷精品国产| 精品国产一区久久| 视频一区在线视频| 日韩午夜av电影| 国产在线不卡视频| 一区二区三区日本| 精品福利av导航| 91性感美女视频| 久久精品国产第一区二区三区| 中文字幕成人av| 欧美绝品在线观看成人午夜影视| 极品美女销魂一区二区三区 | 中文字幕欧美国产| 欧美日韩亚洲综合一区二区三区| 久久精品二区亚洲w码| 亚洲美女偷拍久久| 国产午夜一区二区三区| 欧美精三区欧美精三区| 国产成人av电影在线| 亚洲国产欧美日韩另类综合 | 国产一区二区调教| 亚洲综合丁香婷婷六月香| 欧美mv日韩mv国产网站| 色先锋久久av资源部| 国产一区二区在线观看免费| 亚洲第一久久影院| 中文字幕佐山爱一区二区免费| 日韩欧美在线综合网| 欧美综合色免费| 成人精品免费看| 麻豆中文一区二区| 亚洲一区二区三区视频在线 | 色94色欧美sute亚洲线路二| 国产美女在线观看一区| 日韩福利视频网| 亚洲毛片av在线| 久久精品人人爽人人爽| 日韩欧美精品在线视频| 色婷婷av一区二区三区之一色屋| 国产剧情一区二区三区| 奇米综合一区二区三区精品视频| 最新国产精品久久精品| 久久精品亚洲国产奇米99| 欧美一区二区观看视频| 欧美群妇大交群中文字幕| 色偷偷成人一区二区三区91| 成人高清免费在线播放| 国产专区综合网| 久久激情五月激情| 美女脱光内衣内裤视频久久影院| 亚洲va中文字幕| 亚洲国产毛片aaaaa无费看| 亚洲自拍都市欧美小说| 亚洲激情在线播放| 一区二区三区中文字幕| 亚洲精品国产一区二区精华液| 国产精品久久国产精麻豆99网站 | 日韩亚洲国产中文字幕欧美| 欧美裸体bbwbbwbbw| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 久久九九全国免费| 久久嫩草精品久久久精品| 日韩三级中文字幕| 欧美一区二区三区系列电影| 日韩区在线观看| 亚洲精品一区二区在线观看| 久久久久久久久久电影| 国产亚洲欧美日韩日本| 国产免费成人在线视频| 国产精品欧美久久久久无广告 | 精品理论电影在线观看| 日韩欧美国产午夜精品| 日韩三级免费观看| 久久综合狠狠综合久久激情| 国产亚洲精品福利| 中文字幕视频一区| 一区二区三区四区在线播放| 丝袜亚洲精品中文字幕一区| 久久国产精品99久久人人澡| 国产成人亚洲综合a∨猫咪| 成人性色生活片免费看爆迷你毛片| 本田岬高潮一区二区三区| 色狠狠综合天天综合综合| 欧美日韩视频在线一区二区| 欧美岛国在线观看| 国产精品午夜在线观看| 亚洲中国最大av网站| 青青青伊人色综合久久| 成人午夜激情片| 欧美视频在线观看一区二区| 精品日产卡一卡二卡麻豆| 日本一区二区三区视频视频| 亚洲精品久久嫩草网站秘色| 奇米影视一区二区三区小说| 成人午夜激情片| 欧美色图免费看| 久久精品视频在线看| 亚洲观看高清完整版在线观看| 狠狠色丁香婷综合久久| 色呦呦国产精品| 久久久不卡影院| 亚洲123区在线观看| 国产成人精品免费网站| 9191国产精品| 自拍偷自拍亚洲精品播放| 久久99精品久久久| 91国模大尺度私拍在线视频| 欧美成人一区二区三区| 亚洲精品成人悠悠色影视| 国内精品免费**视频| 欧美日韩国产欧美日美国产精品| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲欧美精品午睡沙发| 国产一区二区不卡在线| 4438x亚洲最大成人网| 中文字幕在线一区二区三区| 激情偷乱视频一区二区三区| 欧美视频一区在线| 亚洲欧美在线aaa| 国产伦精品一区二区三区视频青涩| 欧美午夜精品久久久久久超碰| 国产农村妇女精品| 精品一区二区三区免费视频| 欧美人与性动xxxx| 亚洲美女精品一区| 99这里都是精品| 久久精品亚洲一区二区三区浴池| 日本sm残虐另类| 欧美日韩精品三区| 一区二区在线观看av| 福利一区福利二区| 久久午夜免费电影| 久久不见久久见免费视频7| 欧美日本一区二区| 亚洲福利视频导航| 一本色道a无线码一区v| 国产精品少妇自拍| 成人精品电影在线观看| 国产亚洲综合色| 国产传媒一区在线| 久久久噜噜噜久久人人看| 激情文学综合丁香| 精品久久久久久久久久久久久久久| 日韩 欧美一区二区三区| 欧美日本乱大交xxxxx| 亚洲福利视频导航| 在线不卡欧美精品一区二区三区| 一区二区免费在线播放| 欧洲色大大久久| 亚洲国产另类av| 9191久久久久久久久久久| 天天亚洲美女在线视频| 日韩午夜三级在线| 精品一区二区三区在线播放| 久久综合色综合88| 国产精品18久久久久久vr| 2017欧美狠狠色| 国产精品一级二级三级| 中文字幕欧美国产| 一本色道久久加勒比精品| 亚洲综合清纯丝袜自拍| 欧美无乱码久久久免费午夜一区| 亚洲午夜免费电影| 6080午夜不卡| 狠狠色狠狠色合久久伊人| 日本一区二区视频在线观看| av一区二区不卡| 亚洲一线二线三线视频| 91精品国产综合久久精品麻豆 | 国产日韩精品视频一区| 成人黄色综合网站| 一区二区三区.www| 337p亚洲精品色噜噜狠狠| 久久精品国产免费| 中文字幕不卡一区| 欧美日韩在线观看一区二区| 青青草国产精品亚洲专区无| 国产午夜精品美女毛片视频| 91视频国产观看| 日韩电影在线一区| 国产精品久久久久久久久动漫 | 7777精品伊人久久久大香线蕉完整版| 日日夜夜免费精品| 国产欧美精品区一区二区三区|