fillsolidrect_onerasebkgnd 重影_bitblt函数(25)

电脑杂谈  发布时间:2017-03-10 14:21:13  来源:网络整理

{

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);

BOOL bHorzTracking = m_htEdge == HTLEFT || m_htEdge == HTRIGHT;

int nOfs = m_nTrackPosOld - m_nTrackEdgeOfs;

nOfs -= bHorzTracking ? rc.CenterPoint().x : rc.CenterPoint().y;

rc.OffsetRect(bHorzTracking ? nOfs : 0, bHorzTracking ? 0 : nOfs);

rc.OffsetRect(-rcFrame.TopLeft());

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);

}

BOOL CSizingControlBar::GetEdgeRect(CRect rcWnd, UINT nHitTest,

CRect& rcEdge)

{

rcEdge = rcWnd;

if (m_dwSCBStyle & SCBS_SHOWEDGES)

rcEdge.DeflateRect(1, 1);

BOOL bHorz = IsHorzDocked();

switch (nHitTest)

{

case HTLEFT:

if (!(m_dwSCBStyle & SCBS_EDGELEFT)) return FALSE;

rcEdge.right = rcEdge.left + m_cxEdge;

rcEdge.DeflateRect(0, bHorz ? m_cxEdge: 0);

break;

case HTTOP:

if (!(m_dwSCBStyle & SCBS_EDGETOP)) return FALSE;


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36846-25.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...