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

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

?? guidockcontext.cpp

?? 該文件包含有C8051單片機中實現(xiàn)UART波特率自檢的功能
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				pDockBar->ClientToScreen(&rect);
			}

			// dock it at the specified position, RecalcLayout will snap
			m_pDockSite->ReDockControlBar(m_pBar, pDockBar, &rect);
			m_pDockSite->RecalcLayout();
		}
	}
	else
	{
		CPoint ptFloat = m_ptMRUFloatPos;
		if (ptFloat.x < 0 || ptFloat.y < 0)
		{
			ptFloat = m_rectMRUDockPos.TopLeft();
			m_pBar->GetParent()->ClientToScreen(&ptFloat);
		}
		m_pDockSite->FloatControlBar(m_pBar, ptFloat, m_dwMRUFloatStyle);
	}
}

/////////////////////////////////////////////////////////////////////////////
// CGuiDockContext Operations

void CGuiDockContext::InitLoop()
{
	// handle pending WM_PAINT messages
	MSG msg;
	while (::PeekMessage(&msg, NULL, WM_PAINT, WM_PAINT, PM_NOREMOVE))
	{
		if (!GetMessage(&msg, NULL, WM_PAINT, WM_PAINT))
			return;
		DispatchMessage(&msg);
	}

	// get styles from bar
	m_dwDockStyle = m_pBar->m_dwDockStyle;
	m_dwStyle = m_pBar->m_dwStyle & CBRS_ALIGN_ANY;
	ASSERT(m_dwStyle != 0);

	// initialize state
	m_rectLast.SetRectEmpty();
	m_sizeLast.cx = m_sizeLast.cy = 0;
	m_bForceFrame = m_bFlip = m_bDitherLast = FALSE;

	// lock window update while dragging
	ASSERT(m_pDC == NULL);
	CWnd* pWnd = CWnd::GetDesktopWindow();
	if (pWnd->LockWindowUpdate())
		m_pDC = pWnd->GetDCEx(NULL, DCX_WINDOW|DCX_CACHE|DCX_LOCKWINDOWUPDATE);
	else
		m_pDC = pWnd->GetDCEx(NULL, DCX_WINDOW|DCX_CACHE);
	ASSERT(m_pDC != NULL);
}

void CGuiDockContext::CancelLoop()
{
	DrawFocusRect(TRUE);    // gets rid of focus rect
	ReleaseCapture();

	CWnd* pWnd = CWnd::GetDesktopWindow();
	pWnd->UnlockWindowUpdate();
	if (m_pDC != NULL)
	{
		pWnd->ReleaseDC(m_pDC);
		m_pDC = NULL;
	}
}

/////////////////////////////////////////////////////////////////////////////
// Implementation

void CGuiDockContext::DrawFocusRect(BOOL bRemoveRect)
{
	ASSERT(m_pDC != NULL);

	// default to thin frame
	CSize size(CX_BORDER, CY_BORDER);

	// determine new rect and size
	CRect rect;
	CBrush* pWhiteBrush = CBrush::FromHandle((HBRUSH)::GetStockObject(WHITE_BRUSH));
	CBrush* pDitherBrush = CDC::GetHalftoneBrush();
	CBrush* pBrush = pWhiteBrush;
	CBrush cb;
	if (HORZF(m_dwOverDockStyle))
		rect = m_rectDragHorz;
	else if (VERTF(m_dwOverDockStyle))
		rect = m_rectDragVert;
	else
	{
		// use thick frame instead
		size.cx = GetSystemMetrics(SM_CXFRAME) - CX_BORDER;
		size.cy = GetSystemMetrics(SM_CYFRAME) - CY_BORDER;
		if ((HORZF(m_dwStyle) && !m_bFlip) || (VERTF(m_dwStyle) && m_bFlip))
			rect = m_rectFrameDragHorz;
		else
			rect = m_rectFrameDragVert;
		pBrush = pDitherBrush;
	}
	if (bRemoveRect)
		size.cx = size.cy = 0;

/*	if (afxData.bWin4 &&
		(HORZF(m_dwOverDockStyle) || VERTF(m_dwOverDockStyle)))
	{
		// looks better one pixel in (makes the bar look pushed down)
		rect.InflateRect(-CX_BORDER, -CY_BORDER);
	}
*/
	// draw it and remember last size
	//rect.DeflateRect(2,2);

	if (bFirstClic==TRUE)
	{
		bFirstClic=FALSE;
	}
	else{
		if (bSecondClic==TRUE)
		{
		  m_pDC->DrawDragRect(&rect, size, &m_rectLast, m_sizeLast,
			pBrush, m_bDitherLast ? pDitherBrush : pWhiteBrush);
		  m_bDitherLast = (pBrush == pDitherBrush);
		   m_pDC->DrawDragRect(&rect, size, &m_rectLast, m_sizeLast,
			pBrush, m_bDitherLast ? pDitherBrush : pWhiteBrush);
		  bSecondClic=FALSE;
		}
		else
		{
			m_pDC->DrawDragRect(&rect, size, &m_rectLast, m_sizeLast,
			pBrush, m_bDitherLast ? pDitherBrush : pWhiteBrush);
			m_rectLast = rect;
			m_sizeLast = size;
			m_bDitherLast = (pBrush == pDitherBrush);
		}
	}


	//m_pDC->DrawDragRect(&rect, size, &m_rectLast, m_sizeLast/*,
	//	pBrush, m_bDitherLast ? pDitherBrush : pWhiteBrush*/);
/*	m_rectLast = rect;
	m_sizeLast = size;
	m_bDitherLast = (pBrush == pDitherBrush);*/
}

void CGuiDockContext::UpdateState(BOOL* pFlag, BOOL bNewValue)
{
	if (*pFlag != bNewValue)
	{
		*pFlag = bNewValue;
		m_bFlip = (HORZF(m_dwDockStyle) && VERTF(m_dwDockStyle) && m_bFlip); // shift key
		m_dwOverDockStyle = (m_bForceFrame) ? 0 : CanDock();
		DrawFocusRect();
	}
}

DWORD CGuiDockContext::CanDock()
{
	BOOL bStyleHorz;
	DWORD dwDock = 0; // Dock Canidate
	DWORD dwCurr = 0; // Current Orientation

	// let's check for something in our current orientation first
	// then if the shift key is not forcing our orientation then
	// check for horizontal or vertical orientations as long
	// as we are close enough
	ASSERT(m_dwStyle != 0);

	bStyleHorz = HORZF(m_dwStyle);
	bStyleHorz = m_bFlip ? !bStyleHorz : bStyleHorz;

	if (bStyleHorz && HORZF(m_dwDockStyle))
		dwDock = CanDock(m_rectDragHorz,
									  m_dwDockStyle & ~CBRS_ORIENT_VERT);
	else if (VERTF(m_dwDockStyle))
		dwDock = CanDock(m_rectDragVert,
									  m_dwDockStyle & ~CBRS_ORIENT_HORZ);

	if (!m_bFlip)
	{
		if (dwDock == 0 && HORZF(m_dwDockStyle))
		{
			dwCurr = CanDock(m_rectDragVert,
										  m_dwDockStyle & ~CBRS_ORIENT_VERT);
			dwDock = CanDock(m_rectDragHorz,
										  m_dwDockStyle & ~CBRS_ORIENT_VERT);
			dwDock = (dwDock == dwCurr) ? dwDock : 0;
		}
		if (dwDock == 0 && VERTF(m_dwDockStyle))
		{
			dwCurr = CanDock(m_rectDragHorz,
										  m_dwDockStyle & ~CBRS_ORIENT_HORZ);
			dwDock = CanDock(m_rectDragVert,
										  m_dwDockStyle & ~CBRS_ORIENT_HORZ);
			dwDock = (dwDock == dwCurr) ? dwDock : 0;
		}
	}

	return dwDock;
}

DWORD CGuiDockContext::CanDock(CRect rect, DWORD dwDockStyle, CDockBar** ppDockBar)
{
	// dwDockStyle -- allowable styles of bar
	// don't allow to dock to floating unless multi is specified
	BOOL bTipoToolBar=m_pBar->IsKindOf(RUNTIME_CLASS( CGuiToolBarWnd)) ||
		              m_pBar->IsKindOf(RUNTIME_CLASS( CMenuBar));
	dwDockStyle &= CBRS_ALIGN_ANY|CBRS_FLOAT_MULTI;
	if (ppDockBar != NULL)
		*ppDockBar = NULL;
	POSITION pos = m_pDockSite->m_listControlBars.GetHeadPosition();
	while (pos != NULL)
	{
		CDockBar* pDockBar = (CDockBar*)m_pDockSite->m_listControlBars.GetNext(pos);
		if (pDockBar->IsDockBar() && pDockBar->IsWindowVisible() &&
			(pDockBar->m_dwStyle & dwDockStyle & CBRS_ALIGN_ANY) &&
			(!pDockBar->m_bFloating ||
				(dwDockStyle & pDockBar->m_dwStyle & CBRS_FLOAT_MULTI)))
		{
		
				int nSize=pDockBar->m_arrBars.GetSize();
				for (int i=0;i <nSize;  i++)
				{
					UINT m_nDockBarID = pDockBar->GetDlgCtrlID();
					CControlBar* pBar;
					 pBar = (CControlBar*) pDockBar->m_arrBars[i];
					 if (HIWORD(pBar) == 0) continue; // placeholder
					 if (!pBar->IsVisible()) continue;
					 CRect rectBar;
					 pBar->GetWindowRect(&rectBar);
					 if (rectBar.Width() == 0)
						rectBar.right++;
					 if (rectBar.Height() == 0)
							rectBar.bottom++;
					 CRect rectBar1;
					 pDockBar->GetWindowRect(&rectBar1);
					 if (dwDockStyle==CBRS_ORIENT_VERT)
					 {
						 if (m_nDockBarID==AFX_IDW_DOCKBAR_LEFT)
					 		rectBar1.right=rectBar1.left+20;
						 if(m_nDockBarID==AFX_IDW_DOCKBAR_RIGHT)
							 rectBar1.left=rectBar1.right-20;
					 }
					 else
					 {

						if (m_nDockBarID==AFX_IDW_DOCKBAR_BOTTOM)
							rectBar1.top=rectBar1.bottom-20;
						if (m_nDockBarID==AFX_IDW_DOCKBAR_TOP)
							rectBar1.bottom=rectBar1.top+20;
						
					 }
					 if (rectBar1.IntersectRect(rectBar1, rect))
					 {
						if (ppDockBar != NULL)
							
							*ppDockBar = pDockBar;
						
						return pDockBar->m_dwStyle & dwDockStyle;
					 }
			

					//***********************************************
					if (rectBar.IntersectRect(rectBar, rect))
					{
							if (bTipoToolBar)
							{
								if (pBar->IsKindOf(RUNTIME_CLASS( CGuiControlBar)))
									return 0;
							}
							if (ppDockBar != NULL)
								*ppDockBar = pDockBar;
							return pDockBar->m_dwStyle & dwDockStyle;
							
						 
							
					}
					 
				}//fin del for
							
		
			CRect rectBar;
			pDockBar->GetWindowRect(&rectBar);
			if (rectBar.Width() == 0)
				rectBar.right++;
			if (rectBar.Height() == 0)
				rectBar.bottom++;
			if (rectBar.IntersectRect(rectBar, rect))
			{
				if (ppDockBar != NULL)
					*ppDockBar = pDockBar;
				return pDockBar->m_dwStyle & dwDockStyle;
			}
		}
	}
	return 0;
}

BOOL CGuiDockContext::Track()
{
	// don't handle if capture already set
	if (::GetCapture() != NULL)
		return FALSE;

	// set capture to the window which received this message
	m_pBar->SetCapture();
	ASSERT(m_pBar == CWnd::GetCapture());

	// get messages until capture lost or cancelled/accepted
	while (CWnd::GetCapture() == m_pBar)
	{
		MSG msg;
		if (!::GetMessage(&msg, NULL, 0, 0))
		{
			AfxPostQuitMessage(msg.wParam);
			break;
		}

		switch (msg.message)
		{
		case WM_LBUTTONUP:
			if (m_bDragging)
				EndDrag();
			else
				EndResize();
			return TRUE;
		case WM_MOUSEMOVE:
			if (m_bDragging)
				Move(msg.pt);
			else
				Stretch(msg.pt);
			break;
		case WM_KEYUP:
			if (m_bDragging)
				OnKey((int)msg.wParam, FALSE);
			break;
		case WM_KEYDOWN:
			if (m_bDragging)
				OnKey((int)msg.wParam, TRUE);
			if (msg.wParam == VK_ESCAPE)
			{
				CancelLoop();
				return FALSE;
			}
			break;
		case WM_RBUTTONDOWN:
			CancelLoop();
			return FALSE;

		// just dispatch rest of the messages
		default:
			DispatchMessage(&msg);
			break;
		}
	}

	CancelLoop();

	return FALSE;
}

CDockBar* CGuiDockContext::GetDockBar(DWORD dwOverDockStyle)
{
	DWORD dw = 0;
	CDockBar* pBar;
	if (HORZF(dwOverDockStyle))
	{
		dw = CanDock(m_rectDragHorz,
			dwOverDockStyle & ~CBRS_ORIENT_VERT, &pBar);
		ASSERT(dw != 0);
		ASSERT(pBar != NULL);
		return pBar;
	}
	if (VERTF(dwOverDockStyle))
	{
		dw =CanDock(m_rectDragVert,
			dwOverDockStyle & ~CBRS_ORIENT_HORZ, &pBar);
		ASSERT(dw != 0);
		ASSERT(pBar != NULL);
		return pBar;
	}
	return NULL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频1区2区3区| 国产99久久精品| 久久嫩草精品久久久久| 99久久精品国产导航| 午夜精品久久一牛影视| 国产日韩欧美在线一区| 欧美三级日韩三级| 成人手机电影网| 免费av网站大全久久| 最新热久久免费视频| 在线播放亚洲一区| 91亚洲精品久久久蜜桃| 国产一区二区三区免费看| 亚洲一区二区四区蜜桃| 欧美国产97人人爽人人喊| 欧美一级黄色录像| 欧美无砖专区一中文字| 成人黄色综合网站| 美美哒免费高清在线观看视频一区二区| 国产午夜精品一区二区| 正在播放亚洲一区| 日韩一卡二卡三卡| 91色婷婷久久久久合中文| 国产盗摄精品一区二区三区在线| 日韩有码一区二区三区| 亚洲制服丝袜一区| 亚洲欧美日韩久久精品| 国产欧美精品国产国产专区| 精品日韩欧美在线| 69p69国产精品| 欧美午夜精品久久久久久孕妇| 成人av午夜电影| 国产一区二区按摩在线观看| 美女在线视频一区| 久久综合综合久久综合| 亚州成人在线电影| 偷拍自拍另类欧美| 亚洲第一福利一区| 一区二区三区国产精品| 亚洲欧美电影一区二区| 中文字幕亚洲一区二区va在线| 精品国产不卡一区二区三区| 欧美v日韩v国产v| 日韩一区二区不卡| 日韩一区二区精品| 精品国产凹凸成av人导航| 日韩你懂的在线观看| 911国产精品| 欧美一区二区三区喷汁尤物| 欧美肥大bbwbbw高潮| 日韩欧美视频在线| wwwwww.欧美系列| 国产亚洲精品aa| 日本一区二区三区在线观看| 久久精品欧美日韩精品 | 国产精品成人一区二区三区夜夜夜| 精品乱人伦一区二区三区| 精品国产人成亚洲区| 日韩天堂在线观看| 欧美一区二区三区四区高清| 欧美一区在线视频| 欧美一级一区二区| wwww国产精品欧美| 亚洲欧洲三级电影| 亚洲国产一二三| 日韩和欧美一区二区三区| 美美哒免费高清在线观看视频一区二区| 久热成人在线视频| 成人国产精品免费| 欧美中文字幕不卡| 日韩欧美精品在线| 国产午夜久久久久| 亚洲精品亚洲人成人网| 无码av中文一区二区三区桃花岛| 久久精品国产在热久久| 国产精品系列在线观看| 色88888久久久久久影院野外| 欧美日韩国产另类一区| 欧美videos大乳护士334| 国产日产精品一区| 亚洲综合久久久| 精品在线免费观看| 91在线视频播放地址| 69av一区二区三区| 国产夜色精品一区二区av| 亚洲精品免费在线| 久久99精品一区二区三区三区| aaa亚洲精品| 91精品国产丝袜白色高跟鞋| 国产视频一区二区在线观看| 一区二区三区免费看视频| 免费视频一区二区| 91麻豆蜜桃一区二区三区| 欧美一区二区在线视频| 国产精品拍天天在线| 日韩精品亚洲一区| 成人a区在线观看| 日韩一区二区三区在线视频| 国产精品久久影院| 麻豆精品久久精品色综合| www.日本不卡| 日韩欧美一区在线观看| 亚洲精品免费电影| 丁香婷婷综合激情五月色| 69堂亚洲精品首页| 一区二区三区高清在线| 国产成人av影院| 日韩视频一区二区三区 | 日韩精品久久理论片| 蜜桃传媒麻豆第一区在线观看| 99精品国产视频| 久久久久久久一区| 日韩成人一级片| 精品国产污污免费网站入口| 国产成人免费视| 国产老肥熟一区二区三区| 国产又粗又猛又爽又黄91精品| 奇米888四色在线精品| 国产精品天天看| 男人的天堂亚洲一区| 91片在线免费观看| 国产精品二三区| 国产在线精品一区二区夜色| 欧美亚洲一区三区| 亚洲免费伊人电影| 天使萌一区二区三区免费观看| 国产精品自拍一区| 欧美另类高清zo欧美| 亚洲蜜臀av乱码久久精品| 男人的j进女人的j一区| 欧美久久久影院| 免费看欧美美女黄的网站| 欧美日韩国产另类一区| 国产精品久久久久久妇女6080| 国产一区二区h| 国产欧美精品日韩区二区麻豆天美 | 美腿丝袜亚洲三区| 欧美男生操女生| 午夜精品久久久久久久久久| 91亚洲午夜精品久久久久久| 亚洲免费色视频| 美女尤物国产一区| 国产视频在线观看一区二区三区 | 亚洲丝袜自拍清纯另类| 欧美一级一区二区| 青青草原综合久久大伊人精品优势| 丁香天五香天堂综合| 国产精品免费久久| 亚洲国产岛国毛片在线| 亚洲综合区在线| 亚洲一区二区三区小说| 五月婷婷久久丁香| 欧美日韩一区二区在线观看 | 色激情天天射综合网| 国产精品久久三区| 成人一区二区三区在线观看| 色噜噜狠狠成人网p站| 亚洲综合成人在线视频| 久久色在线视频| av爱爱亚洲一区| 麻豆精品一区二区综合av| 亚洲国产电影在线观看| 久久综合久久久久88| 成人av影视在线观看| 国产精品丝袜黑色高跟| 国产亚洲精品福利| 精品国产污网站| 亚洲韩国精品一区| 色老头久久综合| 亚洲午夜私人影院| 色综合婷婷久久| 五月激情丁香一区二区三区| 欧美亚洲综合另类| 免费精品99久久国产综合精品| 日韩一区二区三| 国产一区二区伦理| 国产欧美日韩综合精品一区二区| 成人小视频免费在线观看| 国产精品萝li| 欧美日韩午夜在线视频| 青娱乐精品在线视频| 久久久久久久久久久99999| 成人午夜伦理影院| 成人欧美一区二区三区视频网页| 91黄色免费看| 男男视频亚洲欧美| 久久久精品黄色| aaa亚洲精品| 亚洲成人一二三| 国产日韩欧美不卡在线| 99精品桃花视频在线观看| 亚洲综合激情小说| 精品三级在线观看| 99久久er热在这里只有精品15| 日韩一区精品字幕| 国产网站一区二区| 欧美日韩一区二区三区免费看| 精品在线播放午夜| 亚洲精品国产成人久久av盗摄| 欧美日韩精品欧美日韩精品一|