Класс CPaneContainer
Класс CPaneContainer
является базовым компонентом модели закрепления, реализованной MFC. Объект этого класса сохраняет указатели на две панели закрепления или два экземпляра CPaneContainer
. Он также сохраняет указатель на разделитель, разделяющий панели (или контейнеры). Вкладывая контейнеры внутрь контейнеров, платформа строит двоичное дерево, представляющее сложные макеты закрепления. Корень двоичного дерева хранится в объекте CPaneContainerManager .
Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.
class CPaneContainer : public CObject
Имя | Описание |
---|---|
CPaneContainer::CPaneContainer | Конструктор по умолчанию. |
CPaneContainer
объекты создаются автоматически платформой.
В следующем примере показано, как создать экземпляр CPaneContainer
класса. Этот фрагмент кода является частью примера "Задать размер области".
CPaneDialog m_wndDlgBar;
CPaneDivider *pDefaultPaneDivider = m_wndDlgBar.GetDefaultPaneDivider();
if (pDefaultPaneDivider == NULL)
{
AfxMessageBox(_T ("The DialogBar is not docked."));
return;
}
BOOL bLeftBar = FALSE;
CPaneContainer *pContainer = pDefaultPaneDivider->FindPaneContainer(&m_wndDlgBar, bLeftBar);
Заголовок: afxpanecontainer.h
CDockablePane* AddPane(CDockablePane* pBar);
[in] pBar
void AddRef();
BOOL AddSubPaneContainer(
CPaneContainer* pContainer,
BOOL bRightNodeNew);
[in] pContainer
[in] bRightNodeNew
virtual int CalcAvailablePaneSpace(
int nRequiredOffset,
CPane* pBar,
CPaneContainer* pContainer,
BOOL bLeftBar);
[in] nRequiredOffset
[in] pBar
[in] pContainer
[in] bLeftBar
virtual CSize CalcAvailableSpace(
CSize sizeStretch,
BOOL bLeftBar);
[in] sizeStretch
[in] bLeftBar
void CalculateRecentSize();
void CheckPaneDividerVisibility();
virtual CPaneContainer* Copy(CPaneContainer* pParentContainer);
[in] pParentContainer
CPaneContainer(
CPaneContainerManager* pManager = NULL,
CDockablePane* pLeftBar = NULL,
CDockablePane* pRightBar = NULL,
CPaneDivider* pSlider = NULL);
[in] pManager
[in] pLeftBar
[in] pRightBar
[in] pSlider
virtual void DeletePane(
CDockablePane* pBar,
BC_FIND_CRITERIA barType);
[in] pBar
[in] barType
CPaneContainer* FindSubPaneContainer(
const CObject* pObject,
BC_FIND_CRITERIA findCriteria);
[in] pObject
[in] findCriteria
CDockablePane* FindTabbedPane(UINT nID);
[in] nID
CList<UINT, UINT>* GetAssociatedSiblingPaneIDs(CDockablePane* pBar);
[in] pBar
const CDockablePane* GetLeftPane() const;
const CPaneContainer* GetLeftPaneContainer() const;
virtual void GetMinSize(CSize& size) const;
[in] размер
virtual void GetMinSizeLeft(CSize& size) const;
[in] размер
virtual void GetMinSizeRight(CSize& size) const;
[in] размер
int GetNodeCount() const;
const CPaneDivider* GetPaneDivider() const;
CPaneContainer* GetParentPaneContainer() const;
CRect GetRecentPaneDividerRect() const;
DWORD GetRecentPaneDividerStyle() const;
int GetRecentPercent();
LONG GetRefCount();
virtual int GetResizeStep() const;
const CDockablePane* GetRightPane() const;
const CPaneContainer* GetRightPaneContainer() const;
int GetTotalReferenceCount() const;
virtual void GetWindowRect(
CRect& rect,
BOOL bIgnoreVisibility = FALSE) const;
[in] rect
[in] bIgnoreVisibility
BOOL IsDisposed() const;
BOOL IsEmpty() const;
BOOL IsLeftPane(CDockablePane* pBar) const;
[in] pBar
BOOL IsLeftPaneContainer() const;
BOOL IsLeftPartEmpty(BOOL bCheckVisibility = FALSE) const;
[in] bCheckVisibility
BOOL IsRightPartEmpty(BOOL bCheckVisibility = FALSE) const;
[in] bCheckVisibility
BOOL IsVisible() const;
virtual void Move(CPoint ptNewLeftTop);
[in] ptNewLeftTop
void OnDeleteHidePane(
CDockablePane* pBar,
BOOL bHide);
[in] pBar
[in] bHide
virtual int OnMoveInternalPaneDivider(
int nOffset,
HDWP& hdwp);
[in] nOffset
[in] hdwp
virtual void OnShowPane(
CDockablePane* pBar,
BOOL bShow);
[in] pBar
[in] bShow
DWORD Release();
void ReleaseEmptyPaneContainer();
void RemoveNonValidPanes();
virtual void RemovePane(CDockablePane* pBar);
[in] pBar
virtual void Resize(
CRect rect,
HDWP& hdwp,
BOOL bRedraw = FALSE);
[in] rect
[in] hdwp
[in] bRedraw
virtual void ResizePane(
int nOffset,
CPane* pBar,
CPaneContainer* pContainer,
BOOL bHorz,
BOOL bLeftBar,
HDWP& hdwp);
[in] nOffset
[in] pBar
[in] pContainer
[in] bHorz
[in] bLeftBar
[in] hdwp
virtual void ResizePartOfPaneContainer(
int nOffset,
BOOL bLeftPart,
HDWP& hdwp);
[in] nOffset
[in] bLeftPart
[in] hdwp
void Serialize(CArchive& ar);
[in] ar
void SetPane(
CDockablePane* pBar,
BOOL bLeft);
[in] pBar
[in] bLeft
void SetPaneContainer(
CPaneContainer* pContainer,
BOOL bLeft);
[in] pContainer
[in] bLeft
void SetPaneDivider(CPaneDivider* pSlider);
[in] pSlider
void SetParentPaneContainer(CPaneContainer* p);
[in] p
void SetRecentPercent(int nRecentPercent);
[in] nRecentPercent
BOOL SetUpByID(
UINT nID,
CDockablePane* pBar);
[in] nID
[in] pBar
virtual void StoreRecentDockSiteInfo(CDockablePane* pBar);
[in] pBar
virtual int StretchPaneContainer(
int nOffset,
BOOL bStretchHorz,
BOOL bLeftBar,
BOOL bMoveSlider,
HDWP& hdwp);
[in] nOffset
[in] bStretchHorz
[in] bLeftBar
[in] bMoveSlider
[in] hdwp
Диаграмма иерархии
Классы
Класс CObject
Класс CPaneContainerManager