这篇教程C++ IsHorzDocked函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中IsHorzDocked函数的典型用法代码示例。如果您正苦于以下问题:C++ IsHorzDocked函数的具体用法?C++ IsHorzDocked怎么用?C++ IsHorzDocked使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了IsHorzDocked函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ASSERTconst BOOL CSizingControlBar::IsSideTracking() const{ // don't call this when not tracking ASSERT(m_bTracking && !IsFloating()); return (m_htEdge == HTLEFT || m_htEdge == HTRIGHT) ? IsHorzDocked() : IsVertDocked();}
开发者ID:zphseu,项目名称:cuiyan,代码行数:8,
示例2: UNUSED_ALWAYSvoid CSizingControlBar::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp){ UNUSED_ALWAYS(bCalcValidRects);#ifndef _SCB_REPLACE_MINIFRAME // Enable diagonal resizing for floating miniframe if (IsFloating()) { CFrameWnd* pFrame = GetParentFrame(); if (pFrame != NULL && pFrame->IsKindOf(RUNTIME_CLASS(CMiniFrameWnd))) { DWORD dwStyle = ::GetWindowLong(pFrame->m_hWnd, GWL_STYLE); if ((dwStyle & MFS_4THICKFRAME) != 0) { pFrame->ModifyStyle(MFS_4THICKFRAME, 0); // clear GetParent()->ModifyStyle(0, WS_CLIPCHILDREN); } } }#endif _SCB_REPLACE_MINIFRAME // compute the the client area m_dwSCBStyle &= ~SCBS_EDGEALL; if (!IsFloating() && m_pDockBar != NULL) { CSCBArray arrSCBars; GetRowSizingBars(arrSCBars); for (int i = 0; i < arrSCBars.GetSize(); i++) if (arrSCBars[i] == this) { if (i > 0) m_dwSCBStyle |= IsHorzDocked() ? SCBS_EDGELEFT : SCBS_EDGETOP; if (i < arrSCBars.GetSize() - 1) m_dwSCBStyle |= IsHorzDocked() ? SCBS_EDGERIGHT : SCBS_EDGEBOTTOM; } } NcCalcClient(&lpncsp->rgrc[0], m_nDockBarID);}
开发者ID:vicentdsmin,项目名称:myie,代码行数:45,
示例3: ASSERTvoid CSizingControlBar::OnTrackUpdateSize(CPoint& point){ ASSERT(!IsFloating()); CPoint pt = point; ClientToScreen(&pt); CSize szDelta = pt - m_ptOld; CSize sizeNew = m_szOld; switch (m_htEdge) { case HTLEFT: sizeNew -= CSize(szDelta.cx, 0); break; case HTTOP: sizeNew -= CSize(0, szDelta.cy); break; case HTRIGHT: sizeNew += CSize(szDelta.cx, 0); break; case HTBOTTOM: sizeNew += CSize(0, szDelta.cy); break; } // enforce the limits sizeNew.cx = max(m_szMinT.cx, min(m_szMaxT.cx, sizeNew.cx)); sizeNew.cy = max(m_szMinT.cy, min(m_szMaxT.cy, sizeNew.cy)); BOOL bHorz = IsHorzDocked(); szDelta = sizeNew - (bHorz ? m_szHorz : m_szVert); if (szDelta == CSize(0, 0)) return; // no size change OnTrackInvertTracker(); // erase tracker (bHorz ? m_szHorz : m_szVert) = sizeNew; // save the new size CSCBArray arrSCBars; GetRowSizingBars(arrSCBars); for (int i = 0; i < arrSCBars.GetSize(); i++) if (!IsSideTracking()) { // track simultaneously CSizingControlBar* pBar = arrSCBars[i]; (bHorz ? pBar->m_szHorz.cy : pBar->m_szVert.cx) = bHorz ? sizeNew.cy : sizeNew.cx; } else { // adjust the neighbour's size too if (arrSCBars[i] != this) continue; CSizingControlBar* pBar = arrSCBars[i + ((m_htEdge == HTTOP || m_htEdge == HTLEFT) ? -1 : 1)]; (bHorz ? pBar->m_szHorz.cx : pBar->m_szVert.cy) -= bHorz ? szDelta.cx : szDelta.cy; } OnTrackInvertTracker(); // redraw tracker at new pos if (m_bDragShowContent) m_pDockSite->DelayRecalcLayout();}
开发者ID:vicentdsmin,项目名称:myie,代码行数:57,
示例4: SetCapturevoid CSizingControlBar::StartTracking(UINT nHitTest){ SetCapture(); // make sure no updates are pending if (!m_bDragShowContent) RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_UPDATENOW); BOOL bHorz = IsHorzDocked(); m_szOld = bHorz ? m_szHorz : m_szVert; CRect rc; GetWindowRect(&rc); CRect rcEdge; VERIFY(GetEdgeRect(rc, nHitTest, rcEdge)); m_ptOld = rcEdge.CenterPoint(); m_htEdge = nHitTest; m_bTracking = TRUE; CSCBArray arrSCBars; GetRowSizingBars(arrSCBars); // compute the minsize as the max minsize of the sizing bars on row m_szMinT = bHorz ? m_szMinHorz : m_szMinVert; for (int i = 0; i < arrSCBars.GetSize(); i++) if (bHorz) m_szMinT.cy = max(m_szMinT.cy, arrSCBars[i]->m_szMinHorz.cy); else m_szMinT.cx = max(m_szMinT.cx, arrSCBars[i]->m_szMinVert.cx); m_szMaxT = m_szOld; if (!IsSideTracking()) { // the control bar cannot grow with more than the size of // remaining client area of the mainframe m_pDockSite->RepositionBars(0, 0xFFFF, AFX_IDW_PANE_FIRST, reposQuery, &rc, NULL, TRUE); m_szMaxT += rc.Size() - CSize(4, 4); } else { // side tracking: max size is the actual size plus the amount // the neighbour bar can be decreased to reach its minsize for (int i = 0; i < arrSCBars.GetSize(); i++) if (arrSCBars[i] == this) break; CSizingControlBar* pBar = arrSCBars[i + ((m_htEdge == HTTOP || m_htEdge == HTLEFT) ? -1 : 1)]; m_szMaxT += (bHorz ? pBar->m_szHorz : pBar->m_szVert) - CSize(pBar->m_szMinHorz.cx, pBar->m_szMinVert.cy); } OnTrackInvertTracker(); // draw tracker}
开发者ID:vicentdsmin,项目名称:myie,代码行数:57,
示例5: definedBOOL CCJControlBar::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { if ((nHitTest != HTSIZE) || m_bTracking) return CControlBar::OnSetCursor(pWnd, nHitTest, message);#if defined(MFCXLIB_STATIC) HINSTANCE hInst = AfxFindResourceHandle( MAKEINTRESOURCE(AFX_IDC_VSPLITBAR), RT_GROUP_CURSOR); if (IsHorzDocked()) ::SetCursor(::LoadCursor(hInst, MAKEINTRESOURCE(AFX_IDC_VSPLITBAR))); else ::SetCursor(::LoadCursor(hInst, MAKEINTRESOURCE(AFX_IDC_HSPLITBAR)));#else if (IsHorzDocked()) ::SetCursor(::LoadCursor(NULL, IDC_SIZENS)); else ::SetCursor(::LoadCursor(NULL, IDC_SIZEWE));#endif return TRUE;}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:21,
示例6: GetParentvoid CCJControlBar::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) { CControlBar::OnWindowPosChanged(lpwndpos); // Find on which side are we docked m_nDockBarID = GetParent()->GetDlgCtrlID(); if (m_bInRecalcNC == FALSE) { m_bInRecalcNC = TRUE; // Force recalc the non-client area SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER | SWP_FRAMECHANGED); m_bInRecalcNC = FALSE; } if (m_bButtons) { ASSERT(m_ImageList); if (IsFloating()) { m_btnClose.ShowWindow(SW_HIDE); m_btnMinim.ShowWindow(SW_HIDE); return; } else { m_btnClose.ShowWindow(SW_SHOW); m_btnMinim.ShowWindow(SW_SHOW); } CRect rcClose(GetButtonRect()); CRect rcMinim(GetButtonRect()); if (IsHorzDocked()) { rcMinim.OffsetRect(0,14); m_btnMinim.SetIcon(m_ImageList->ExtractIcon(2),CSize(13,13)); } else { rcClose.OffsetRect(14,0); m_btnMinim.SetIcon(m_ImageList->ExtractIcon(1),CSize(13,13)); } m_btnClose.MoveWindow(rcClose); m_btnMinim.MoveWindow(rcMinim); } Invalidate();}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:52,
示例7: SetCapturevoid CCJControlBar::StartTracking(){ SetCapture(); // make sure no updates are pending RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_UPDATENOW); m_pDockSite->LockWindowUpdate(); m_ptOld = m_rectBorder.CenterPoint(); m_bTracking = TRUE; m_rectTracker = m_rectBorder; if (!IsHorzDocked()) m_rectTracker.bottom -= 4; OnInvertTracker(m_rectTracker);}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:16,
示例8: GetRowInfovoid CSizingControlBar::AlignControlBars(){ int nFirst, nLast, nThis; GetRowInfo(nFirst, nLast, nThis); BOOL bHorz = IsHorzDocked(); BOOL bNeedRecalc = FALSE; int nPos, nAlign = bHorz ? -2 : 0; CRect rc, rcDock; m_pDockBar->GetWindowRect(&rcDock); for (int i = nFirst; i <= nLast; i++) { CControlBar* pBar = (CControlBar*)m_pDockBar->m_arrBars[i]; if (HIWORD(pBar) == 0) continue; // placeholder if (!pBar->IsVisible()) continue; pBar->GetWindowRect(&rc); rc.OffsetRect(-rcDock.TopLeft()); if ((nPos = FindSizingBar(pBar)) >= 0) rc = CRect(rc.TopLeft(), bHorz ? m_arrBars[nPos]->m_szHorz : m_arrBars[nPos]->m_szVert); if ((bHorz ? rc.left : rc.top) != nAlign) { if (!bHorz) rc.OffsetRect(0, nAlign - rc.top - 2); else if (m_nDockBarID == AFX_IDW_DOCKBAR_TOP) rc.OffsetRect(nAlign - rc.left, -2); else rc.OffsetRect(nAlign - rc.left, 0); pBar->MoveWindow(rc); bNeedRecalc = TRUE; } nAlign += (bHorz ? rc.Width() : rc.Height()) - 2; } if (bNeedRecalc) { m_pDockSite->DelayRecalcLayout(); TRACE(_T("ccc/n")); }}
开发者ID:Spritutu,项目名称:AiPI-1,代码行数:45,
示例9: UNUSED_ALWAYSvoid CSizingControlBar::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp){ UNUSED_ALWAYS(bCalcValidRects);#ifndef _SCB_REPLACE_MINIFRAME // Enable diagonal resizing for floating miniframe if (IsFloating()) { CFrameWnd* pFrame = GetParentFrame(); if (pFrame != NULL && pFrame->IsKindOf(RUNTIME_CLASS(CMiniFrameWnd))) {//mpc-hc custom code start LONG_PTR dwStyle = ::GetWindowLongPtr(pFrame->m_hWnd, GWL_STYLE);//mpc-hc custom code end if ((dwStyle & MFS_4THICKFRAME) != 0) { pFrame->ModifyStyle(MFS_4THICKFRAME, 0); // clear GetParent()->ModifyStyle(0, WS_CLIPCHILDREN); } } }#endif _SCB_REPLACE_MINIFRAME // compute the the client area m_dwSCBStyle &= ~SCBS_EDGEALL; // add resizing edges between bars on the same row if (!IsFloating() && m_pDockBar != NULL) { CSCBArray arrSCBars; int nThis; GetRowSizingBars(arrSCBars, nThis); BOOL bHorz = IsHorzDocked(); if (nThis > 0) m_dwSCBStyle |= bHorz ? SCBS_EDGELEFT : SCBS_EDGETOP; if (nThis < arrSCBars.GetUpperBound()) m_dwSCBStyle |= bHorz ? SCBS_EDGERIGHT : SCBS_EDGEBOTTOM; } NcCalcClient(&lpncsp->rgrc[0], m_nDockBarID);}
开发者ID:1ldk,项目名称:mpc-hc,代码行数:45,
示例10: GetClientRectCRect CCJControlBar::GetButtonRect(){ CRect pRect; GetClientRect(pRect); pRect.OffsetRect(-pRect.left,-pRect.top); if(IsHorzDocked()) { pRect.top += 3; pRect.bottom = pRect.top+12; pRect.left += 2; pRect.right = pRect.left+12; } else { pRect.right -= 19; pRect.left = pRect.right-12; pRect.top += 3; pRect.bottom = pRect.top+12; } return pRect;}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:21,
示例11: IsHorzDockedvoid CSizingControlBarG::NcPaintGripper(CDC* pDC, CRect rcClient){ if (!HasGripper()) return; // paints a simple "two raised lines" gripper // override this if you want a more sophisticated gripper CRect gripper = rcClient; CRect rcbtn = m_bUseMaxButton ? m_btnMax.GetRect() : m_biHide.GetRect(); BOOL bHorz = IsHorzDocked(); gripper.DeflateRect(1, 1); if (bHorz) { // gripper at left gripper.left -= m_cyGripper; gripper.right = gripper.left + 3; gripper.top = rcbtn.bottom + 3; } else { // gripper at top gripper.top -= m_cyGripper; 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)); m_biHide.Paint(pDC); // MDM // Draw the max button as needed. if ( m_bUseMaxButton && !IsFloating() ) m_btnMax.Paint(pDC);}
开发者ID:moodboom,项目名称:Reusable,代码行数:40,
示例12: ASSERTvoid CSizingControlBar::OnTrackInvertTracker(){ ASSERT(m_bTracking); if (m_bDragShowContent) return; // don't show tracker if DragFullWindows is on BOOL bHorz = IsHorzDocked(); CRect rc, rcBar, rcDock, rcFrame; GetWindowRect(rcBar); m_pDockBar->GetWindowRect(rcDock); m_pDockSite->GetWindowRect(rcFrame); VERIFY(GetEdgeRect(rcBar, m_htEdge, rc)); if (!IsSideTracking()) rc = bHorz ? CRect(rcDock.left + 1, rc.top, rcDock.right - 1, rc.bottom) : CRect(rc.left, rcDock.top + 1, rc.right, rcDock.bottom - 1); rc.OffsetRect(-rcFrame.TopLeft()); CSize sizeNew = bHorz ? m_szHorz : m_szVert; CSize sizeDelta = sizeNew - m_szOld; if (m_nDockBarID == AFX_IDW_DOCKBAR_LEFT && m_htEdge == HTTOP || m_nDockBarID == AFX_IDW_DOCKBAR_RIGHT && m_htEdge != HTBOTTOM || m_nDockBarID == AFX_IDW_DOCKBAR_TOP && m_htEdge == HTLEFT || m_nDockBarID == AFX_IDW_DOCKBAR_BOTTOM && m_htEdge != HTRIGHT) sizeDelta = -sizeDelta; rc.OffsetRect(sizeDelta); CDC *pDC = m_pDockSite->GetDCEx(NULL, DCX_WINDOW | DCX_CACHE | DCX_LOCKWINDOWUPDATE); CBrush* pBrush = CDC::GetHalftoneBrush(); CBrush* pBrushOld = pDC->SelectObject(pBrush); pDC->PatBlt(rc.left, rc.top, rc.Width(), rc.Height(), PATINVERT); pDC->SelectObject(pBrushOld); m_pDockSite->ReleaseDC(pDC);}
开发者ID:Spritutu,项目名称:AiPI-1,代码行数:39,
示例13: pRectvoid CCJControlBar::DrawGripper(CDC* pDC){ if (IsFloating()) return; if (m_bGripper) { // draw the gripper. CRect pRect(GetGripperRect()); pDC->Draw3dRect( pRect, ::GetSysColor(COLOR_BTNHIGHLIGHT), ::GetSysColor(COLOR_BTNSHADOW) ); if(IsHorzDocked()) pRect.OffsetRect(4,0); else pRect.OffsetRect(0,4); pDC->Draw3dRect( pRect, ::GetSysColor(COLOR_BTNHIGHLIGHT), ::GetSysColor(COLOR_BTNSHADOW) ); } m_pDockSite->RecalcLayout();}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:23,
示例14: switchvoid CSizingControlBar::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) { // compute the the client area CRect rcClient = lpncsp->rgrc[0]; rcClient.DeflateRect(5, 5); m_dwSCBStyle &= ~SCBS_EDGEALL; switch(m_nDockBarID) { case AFX_IDW_DOCKBAR_TOP: m_dwSCBStyle |= SCBS_EDGEBOTTOM; rcClient.DeflateRect(m_cyGripper, 0, 0, 0); break; case AFX_IDW_DOCKBAR_BOTTOM: m_dwSCBStyle |= SCBS_EDGETOP; rcClient.DeflateRect(m_cyGripper, 0, 0, 0); break; case AFX_IDW_DOCKBAR_LEFT: m_dwSCBStyle |= SCBS_EDGERIGHT; rcClient.DeflateRect(0, m_cyGripper, 0, 0); break; case AFX_IDW_DOCKBAR_RIGHT: m_dwSCBStyle |= SCBS_EDGELEFT; rcClient.DeflateRect(0, m_cyGripper, 0, 0); break; default: break; } if (!IsFloating() && m_pDockBar != NULL) { CSCBArray arrSCBars; GetRowSizingBars(arrSCBars); for (int i = 0; i < arrSCBars.GetSize(); i++) if (arrSCBars[i] == this) { if (i > 0) m_dwSCBStyle |= IsHorzDocked() ? SCBS_EDGELEFT : SCBS_EDGETOP; if (i < arrSCBars.GetSize() - 1) m_dwSCBStyle |= IsHorzDocked() ? SCBS_EDGERIGHT : SCBS_EDGEBOTTOM; } } // make room for edges only if they will be painted if (m_dwSCBStyle & SCBS_SHOWEDGES) rcClient.DeflateRect( (m_dwSCBStyle & SCBS_EDGELEFT) ? m_cxEdge : 0, (m_dwSCBStyle & SCBS_EDGETOP) ? m_cxEdge : 0, (m_dwSCBStyle & SCBS_EDGERIGHT) ? m_cxEdge : 0, (m_dwSCBStyle & SCBS_EDGEBOTTOM) ? m_cxEdge : 0); // "hide" button positioning CPoint ptOrgBtn; if (IsHorzDocked()) ptOrgBtn = CPoint(rcClient.left - m_cyGripper - 1, rcClient.top - 1); else ptOrgBtn = CPoint(rcClient.right - 11, rcClient.top - m_cyGripper - 1); m_biHide.Move(ptOrgBtn - CRect(lpncsp->rgrc[0]).TopLeft()); lpncsp->rgrc[0] = rcClient;}
开发者ID:Spritutu,项目名称:AiPI-1,代码行数:69,
示例15: IsFloatingconst BOOL CSizingControlBar::IsFloating() const{ return !IsHorzDocked() && !IsVertDocked();}
开发者ID:Spritutu,项目名称:AiPI-1,代码行数:4,
示例16: SetCapturevoid CSizingControlBar::StartTracking(UINT nHitTest, CPoint point){ SetCapture(); // make sure no updates are pending if (!m_bDragShowContent) RedrawWindow(NULL, NULL, RDW_ALLCHILDREN | RDW_UPDATENOW); m_htEdge = nHitTest; m_bTracking = TRUE; BOOL bHorz = IsHorzDocked(); BOOL bHorzTracking = m_htEdge == HTLEFT || m_htEdge == HTRIGHT; m_nTrackPosOld = bHorzTracking ? point.x : point.y; CRect rcBar, rcEdge; GetWindowRect(rcBar); GetEdgeRect(rcBar, m_htEdge, rcEdge); m_nTrackEdgeOfs = m_nTrackPosOld - (bHorzTracking ? rcEdge.CenterPoint().x : rcEdge.CenterPoint().y); CSCBArray arrSCBars; int nThis; GetRowSizingBars(arrSCBars, nThis); m_nTrackPosMin = m_nTrackPosMax = m_nTrackPosOld; if (!IsSideTracking()) { // calc minwidth as the max minwidth of the sizing bars on row int nMinWidth = bHorz ? m_szMinHorz.cy : m_szMinVert.cx; for (int i = 0; i < arrSCBars.GetSize(); i++) nMinWidth = max(nMinWidth, bHorz ? arrSCBars[i]->m_szMinHorz.cy : arrSCBars[i]->m_szMinVert.cx); int nExcessWidth = (bHorz ? m_szHorz.cy : m_szVert.cx) - nMinWidth; // the control bar cannot grow with more than the width of // remaining client area of the mainframe CRect rcT; m_pDockSite->RepositionBars(0, 0xFFFF, AFX_IDW_PANE_FIRST, reposQuery, &rcT, NULL, TRUE); int nMaxWidth = bHorz ? rcT.Height() - 2 : rcT.Width() - 2; BOOL bTopOrLeft = m_htEdge == HTTOP || m_htEdge == HTLEFT; m_nTrackPosMin -= bTopOrLeft ? nMaxWidth : nExcessWidth; m_nTrackPosMax += bTopOrLeft ? nExcessWidth : nMaxWidth; } else { // side tracking: // max size is the actual size plus the amount the other // sizing bars can be decreased until they reach their minsize if (m_htEdge == HTBOTTOM || m_htEdge == HTRIGHT) nThis++; for (int i = 0; i < arrSCBars.GetSize(); i++) { CSizingControlBar* pBar = arrSCBars[i]; int nExcessWidth = bHorz ? pBar->m_szHorz.cx - pBar->m_szMinHorz.cx : pBar->m_szVert.cy - pBar->m_szMinVert.cy; if (i < nThis) m_nTrackPosMin -= nExcessWidth; else m_nTrackPosMax += nExcessWidth; } } OnTrackInvertTracker(); // draw tracker}
开发者ID:zphseu,项目名称:cuiyan,代码行数:74,
示例17: returnBOOL CCJControlBar::IsFloating(){ return (!IsHorzDocked() && !IsVertDocked());}
开发者ID:ZhaoboMeng,项目名称:k-line-print,代码行数:4,
示例18: IsHorzDockedvoid CCoolBar::NcPaintGripper(CDC* pDC, CRect rcClient){ if (!HasGripper()) return;#ifndef _SCB_STYLE_FLAT CRect gripper = rcClient; CRect rcbtn = m_biHide.GetRect(); BOOL bHorz = IsHorzDocked(); gripper.DeflateRect(1, 1); if (bHorz) { // gripper at left gripper.left -= m_cyGripper; gripper.right = gripper.left + 3; gripper.top = rcbtn.bottom + 3; } else { // gripper at top gripper.top -= m_cyGripper; 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)); m_biHide.Paint(pDC);#else // compute the caption rectangle BOOL bHorz = IsHorzDocked(); CRect rcGrip = rcClient; CRect rcBtn = m_biHide.GetRect(); if (bHorz) { // right side gripper rcGrip.left -= m_cyGripper + 1; rcGrip.right = rcGrip.left + 11; rcGrip.top = rcBtn.bottom + 3; } else { // gripper at top rcGrip.top -= m_cyGripper + 1; rcGrip.bottom = rcGrip.top + 11; rcGrip.right = rcBtn.left - 3; } rcGrip.InflateRect(bHorz ? 1 : 0, bHorz ? 0 : 1); // draw the caption background //CBrush br; COLORREF clrCptn = m_bActive ? ::GetSysColor(COLOR_ACTIVECAPTION) : ::GetSysColor(COLOR_INACTIVECAPTION); // query gradient info (usually TRUE for Win98/Win2k) BOOL bGradient = FALSE; ::SystemParametersInfo(SPI_GETGRADIENTCAPTIONS, 0, &bGradient, 0); if (!bGradient) pDC->FillSolidRect(&rcGrip, clrCptn); // solid color else { // gradient from left to right or from bottom to top // get second gradient color (the right end) COLORREF clrCptnRight = m_bActive ? ::GetSysColor(COLOR_GRADIENTACTIVECAPTION) : ::GetSysColor(COLOR_GRADIENTINACTIVECAPTION); // this will make 2^6 = 64 fountain steps int nShift = 6; int nSteps = 1 << nShift; for (int i = 0; i < nSteps; i++) { // do a little alpha blending int nR = (GetRValue(clrCptn) * (nSteps - i) + GetRValue(clrCptnRight) * i) >> nShift; int nG = (GetGValue(clrCptn) * (nSteps - i) + GetGValue(clrCptnRight) * i) >> nShift; int nB = (GetBValue(clrCptn) * (nSteps - i) + GetBValue(clrCptnRight) * i) >> nShift; COLORREF cr = RGB(nR, nG, nB); // then paint with the resulting color CRect r2 = rcGrip; if (bHorz) { r2.bottom = rcGrip.bottom - ((i * rcGrip.Height()) >> nShift); r2.top = rcGrip.bottom - (((i + 1) * rcGrip.Height()) >> nShift); if (r2.Height() > 0) pDC->FillSolidRect(r2, cr); }//.........这里部分代码省略.........
开发者ID:michael4338,项目名称:CharactorDetection,代码行数:101,
示例19: IsHorzDockedvoid CSizingControlBarCF::NcPaintGripper(CDC* pDC, CRect rcClient){ if (!HasGripper()) return; // compute the caption rectangle BOOL bHorz = IsHorzDocked(); CRect rcGrip = rcClient; CRect rcBtn = m_biHide.GetRect(); if (bHorz) { // right side gripper rcGrip.left -= m_cyGripper + 1; rcGrip.right = rcGrip.left + 11; rcGrip.top = rcBtn.bottom + 3; } else { // gripper at top rcGrip.top -= m_cyGripper + 1; rcGrip.bottom = rcGrip.top + 11; rcGrip.right = rcBtn.left - 3; } rcGrip.InflateRect(bHorz ? 1 : 0, bHorz ? 0 : 1); // draw the caption background //CBrush br;/* COLORREF clrCptn = m_bActive ? ::GetSysColor(COLOR_ACTIVECAPTION) : ::GetSysColor(COLOR_INACTIVECAPTION); // query gradient info (usually TRUE for Win98/Win2k) BOOL bGradient = FALSE; ::SystemParametersInfo(SPI_GETGRADIENTCAPTIONS, 0, &bGradient, 0); if (!bGradient) pDC->FillSolidRect(&rcGrip, clrCptn); // solid color else { // gradient from left to right or from bottom to top // get second gradient color (the right end) COLORREF clrCptnRight = m_bActive ? ::GetSysColor(COLOR_GRADIENTACTIVECAPTION) : ::GetSysColor(COLOR_GRADIENTINACTIVECAPTION); // this will make 2^6 = 64 fountain steps int nShift = 6; int nSteps = 1 << nShift; for (int i = 0; i < nSteps; i++) { // do a little alpha blending int nR = (GetRValue(clrCptn) * (nSteps - i) + GetRValue(clrCptnRight) * i) >> nShift; int nG = (GetGValue(clrCptn) * (nSteps - i) + GetGValue(clrCptnRight) * i) >> nShift; int nB = (GetBValue(clrCptn) * (nSteps - i) + GetBValue(clrCptnRight) * i) >> nShift; COLORREF cr = RGB(nR, nG, nB); // then paint with the resulting color CRect r2 = rcGrip; if (bHorz) { r2.bottom = rcGrip.bottom - ((i * rcGrip.Height()) >> nShift); r2.top = rcGrip.bottom - (((i + 1) * rcGrip.Height()) >> nShift); if (r2.Height() > 0) pDC->FillSolidRect(r2, cr); } else { r2.left = rcGrip.left + ((i * rcGrip.Width()) >> nShift); r2.right = rcGrip.left + (((i + 1) * rcGrip.Width()) >> nShift); if (r2.Width() > 0) pDC->FillSolidRect(r2, cr); } } }*/ // draw the caption text - first select a font CFont font; int ppi = pDC->GetDeviceCaps(LOGPIXELSX);#ifdef CHINESE_VER int pointsize = MulDiv(90, 96, ppi); // 9.0 points at 96 ppi#else int pointsize = MulDiv(85, 96, ppi); // 8.5 points at 96 ppi for english#endif LOGFONT lf; BOOL bFont = font.CreatePointFont(pointsize, m_sFontFace); if (bFont) { // get the text color /* COLORREF clrCptnText = m_bActive ? ::GetSysColor(COLOR_CAPTIONTEXT) : ::GetSysColor(COLOR_INACTIVECAPTIONTEXT);*///.........这里部分代码省略.........
开发者ID:vicentdsmin,项目名称:myie,代码行数:101,
注:本文中的IsHorzDocked函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ IsIconic函数代码示例 C++ IsHordeFlagPickedup函数代码示例 |