本文整理汇总了C++中IsHorzDocked函数的典型用法代码示例。如果您正苦于以下问题:C++ IsHorzDocked函数的具体用法?C++ IsHorzDocked怎么用?C++ IsHorzDocked使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IsHorzDocked函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ASSERT
const BOOL CSizingControlBar::IsSideTracking() const
{
// don't call this when not tracking
ASSERT(m_bTracking && !IsFloating());
return (m_htEdge == HTLEFT || m_htEdge == HTRIGHT) ?
IsHorzDocked() : IsVertDocked();
}
示例2: UNUSED_ALWAYS
void 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);
}
示例3: ASSERT
void 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();
}
示例4: SetCapture
void 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
}
示例5: defined
BOOL 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;
}
示例6: GetParent
void 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();
}
示例7: SetCapture
void 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);
}
示例8: GetRowInfo
void 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"));
}
}
示例9: UNUSED_ALWAYS
void 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);
}
示例10: GetClientRect
CRect 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;
}
示例11: IsHorzDocked
void 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);
}
示例12: ASSERT
void 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);
}
示例13: pRect
void 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();
}
示例14: switch
void 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;
}
示例15: IsFloating
const BOOL CSizingControlBar::IsFloating() const
{
return !IsHorzDocked() && !IsVertDocked();
}