แก้ไข

แชร์ผ่าน


CMultiPaneFrameWnd Class

The CMultiPaneFrameWnd class extends CPaneFrameWnd Class. It can support multiple panes. Instead of a single embedded handle to a control bar, CMultiPaneFrameWnd contains a CPaneContainerManager Class object that enables the user to dock one CMultiPaneFrameWnd to another and dynamically create multiple floating, tabbed windows.

For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.

Syntax

class CMultiPaneFrameWnd : public CPaneFrameWnd

Members

Public Methods

Name Description
CMultiPaneFrameWnd::AddPane Adds a pane. (Overrides CPaneFrameWnd::AddPane.)
CMultiPaneFrameWnd::AddRecentPane
CMultiPaneFrameWnd::AdjustLayout Adjusts the layout of the mini-frame window. (Overrides CPaneFrameWnd::AdjustLayout.)
CMultiPaneFrameWnd::AdjustPaneFrames (Overrides CPaneFrameWnd::AdjustPaneFrames.)
CMultiPaneFrameWnd::CalcExpectedDockedRect Calculates the expected rectangle of a docked window. (Overrides CPaneFrameWnd::CalcExpectedDockedRect.)
CMultiPaneFrameWnd::CanBeAttached Determines whether the current pane can dock to another pane or frame window. (Overrides CPaneFrameWnd::CanBeAttached.)
CMultiPaneFrameWnd::CanBeDockedToPane Determines whether the mini-frame window can dock to a pane. (Overrides CPaneFrameWnd::CanBeDockedToPane.)
CMultiPaneFrameWnd::CheckGripperVisibility (Overrides CPaneFrameWnd::CheckGripperVisibility.)
CMultiPaneFrameWnd::CloseMiniFrame (Overrides CPaneFrameWnd::CloseMiniFrame.)
CMultiPaneFrameWnd::ConvertToTabbedDocument Converts the pane to a tabbed document. (Overrides CPaneFrameWnd::ConvertToTabbedDocument.)
CMultiPaneFrameWnd::DockFrame
CMultiPaneFrameWnd::DockPane Docks the pane. (Overrides CPaneFrameWnd::DockPane.)
CMultiPaneFrameWnd::DockRecentPaneToMainFrame
CMultiPaneFrameWnd::GetCaptionText Returns the caption text. (Overrides CPaneFrameWnd::GetCaptionText.)
CMultiPaneFrameWnd::GetPaneContainerManager Returns a reference to the internal container manager object.
CMultiPaneFrameWnd::GetFirstVisiblePane Returns the first visible pane that is contained in a mini-frame window. (Overrides CPaneFrameWnd::GetFirstVisiblePane.)
CMultiPaneFrameWnd::GetPane Returns a pane that is contained in the mini-frame window. (Overrides CPaneFrameWnd::GetPane.)
CMultiPaneFrameWnd::GetPaneCount Returns the number of panes that are contained in a mini-frame window. (Overrides CPaneFrameWnd::GetPaneCount.)
CMultiPaneFrameWnd::GetVisiblePaneCount Returns the number of visible panes that are contained in a mini-frame window. (Overrides CPaneFrameWnd::GetVisiblePaneCount.)
CMultiPaneFrameWnd::InsertPane
CMultiPaneFrameWnd::LoadState Loads the pane's state from the registry. (Overrides CPaneFrameWnd::LoadState.)
CMultiPaneFrameWnd::OnDockToRecentPos Docks the mini-frame window at its most recent position. (Overrides CPaneFrameWnd::OnDockToRecentPos.)
CMultiPaneFrameWnd::OnKillRollUpTimer Stops the rollup timer. (Overrides CPaneFrameWnd::OnKillRollUpTimer.)
CMultiPaneFrameWnd::OnPaneRecalcLayout Adjusts the layout of a pane inside a mini-frame window. (Overrides CPaneFrameWnd::OnPaneRecalcLayout.)
CMultiPaneFrameWnd::OnSetRollUpTimer Sets the rollup timer. (Overrides CPaneFrameWnd::OnSetRollUpTimer.)
CMultiPaneFrameWnd::OnShowPane Called by the framework when a pane in the mini-frame window is hidden or displayed. (Overrides CPaneFrameWnd::OnShowPane.)
CMultiPaneFrameWnd::PaneFromPoint Returns a pane if it contains a user-supplied point inside a mini-frame window. (Overrides CPaneFrameWnd::PaneFromPoint.)
CMultiPaneFrameWnd::RemoveNonValidPanes Called by the framework to remove non-valid panes. (Overrides CPaneFrameWnd::RemoveNonValidPanes.)
CMultiPaneFrameWnd::RemovePane Removes a pane from the mini-frame window. (Overrides CPaneFrameWnd::RemovePane.)
CMultiPaneFrameWnd::ReplacePane Replaces one pane with another. (Overrides CPaneFrameWnd::ReplacePane.)
CMultiPaneFrameWnd::SaveState Saves the pane's state to the registry. (Overrides CPaneFrameWnd::SaveState.)
CMultiPaneFrameWnd::Serialize (Overrides CPaneFrameWnd::Serialize.)
CMultiPaneFrameWnd::SetDockState Sets the docking state. (Overrides CPaneFrameWnd::SetDockState.)
CMultiPaneFrameWnd::SetLastFocusedPane
CMultiPaneFrameWnd::SetPreDockState Sets the predocking state. (Overrides CPaneFrameWnd::SetPreDockState.)
CMultiPaneFrameWnd::StoreRecentDockSiteInfo (Overrides CPaneFrameWnd::StoreRecentDockSiteInfo.)
CMultiPaneFrameWnd::StoreRecentTabRelatedInfo (Overrides CPaneFrameWnd::StoreRecentTabRelatedInfo.)

Remarks

Most of the methods in this class override methods in the CPaneFrameWnd Class class.

If a pane uses the AFX_CBRS_AUTO_ROLLUP style and the user docks that pane to a multi-pane frame window, the user can roll up the window regardless of the style settings of the other docked panes.

The framework automatically creates a CMultiPaneFrameWnd object when the user floats a pane that uses the CBRS_FLOAT_MULTI style.

For information about deriving a class from the CPaneFrameWnd class and creating it dynamically, see CPaneFrameWnd.

Example

The following example demonstrates how to retrieve a pointer to a CMultiPaneFrameWnd object. This code snippet is part of the Set Pane Size sample.

// CDockablePane* pBar
CMultiPaneFrameWnd *pParentMiniFrame =
    DYNAMIC_DOWNCAST(CMultiPaneFrameWnd, pBar->GetParentMiniFrame());

Inheritance Hierarchy

CObject

CCmdTarget

CWnd

CPaneFrameWnd

CMultiPaneFrameWnd

Requirements

Header: afxMultiPaneFrameWnd.h

CMultiPaneFrameWnd::AddPane

virtual void AddPane(CBasePane* pWnd);

Parameters

[in] pWnd

Remarks

CMultiPaneFrameWnd::AddRecentPane

virtual BOOL AddRecentPane(CDockablePane* pBar);

Parameters

[in] pBar

Return Value

Remarks

CMultiPaneFrameWnd::AdjustLayout

virtual void AdjustLayout();

Remarks

CMultiPaneFrameWnd::AdjustPaneFrames

virtual void AdjustPaneFrames();

Remarks

CMultiPaneFrameWnd::CalcExpectedDockedRect

virtual void CalcExpectedDockedRect(
    CWnd* pWndToDock,
    CPoint ptMouse,
    CRect& rectResult,
    BOOL& bDrawTab,
    CDockablePane** ppTargetBar);

Parameters

[in] pWndToDock
[in] ptMouse
[in] rectResult
[in] bDrawTab
[in] ppTargetBar

Remarks

CMultiPaneFrameWnd::CanBeAttached

virtual BOOL CanBeAttached() const;

Return Value

Remarks

CMultiPaneFrameWnd::CanBeDockedToPane

virtual BOOL CanBeDockedToPane(const CDockablePane* pDockingBar) const;

Parameters

[in] pDockingBar

Return Value

Remarks

CMultiPaneFrameWnd::CheckGripperVisibility

virtual void CheckGripperVisibility();

Remarks

CMultiPaneFrameWnd::CloseMiniFrame

virtual void CloseMiniFrame();

Remarks

CMultiPaneFrameWnd::ConvertToTabbedDocument

virtual void ConvertToTabbedDocument();

Remarks

CMultiPaneFrameWnd::DockFrame

virtual BOOL DockFrame(
    CPaneFrameWnd* pDockedFrame,
    AFX_DOCK_METHOD dockMethod);

Parameters

[in] pDockedFrame
[in] dockMethod

Return Value

Remarks

CMultiPaneFrameWnd::DockPane

virtual BOOL DockPane(CDockablePane* pDockedBar);

Parameters

[in] pDockedBar

Return Value

Remarks

CMultiPaneFrameWnd::DockRecentPaneToMainFrame

virtual void DockRecentPaneToMainFrame(CDockablePane* pBar);

Parameters

[in] pBar

Remarks

CMultiPaneFrameWnd::GetCaptionText

virtual CString GetCaptionText();

Return Value

Remarks

CMultiPaneFrameWnd::GetFirstVisiblePane

virtual CWnd* GetFirstVisiblePane() const;

Return Value

Remarks

CMultiPaneFrameWnd::GetPane

virtual CWnd* GetPane() const;

Return Value

Remarks

CMultiPaneFrameWnd::GetPaneContainerManager

Returns a reference to the internal container manager object.

CPaneContainerManager& GetPaneContainerManager();

Return Value

A reference to the internal container manager object.

Remarks

This method can be used to access the internal CPaneContainerManager Class object.

CMultiPaneFrameWnd::GetPaneCount

virtual int GetPaneCount() const;

Return Value

Remarks

CMultiPaneFrameWnd::GetVisiblePaneCount

virtual int GetVisiblePaneCount() const;

Return Value

Remarks

CMultiPaneFrameWnd::InsertPane

virtual BOOL InsertPane(
    CBasePane* pControlBar,
    CBasePane* pTarget,
    BOOL bAfter);

Parameters

[in] pControlBar
[in] pTarget
[in] bAfter

Return Value

Remarks

CMultiPaneFrameWnd::LoadState

virtual BOOL LoadState(
    LPCTSTR lpszProfileName = NULL,
    UINT uiID = (UINT) -1);

Parameters

[in] lpszProfileName
[in] uiID

Return Value

Remarks

CMultiPaneFrameWnd::OnDockToRecentPos

virtual void OnDockToRecentPos();

Remarks

CMultiPaneFrameWnd::OnKillRollUpTimer

virtual void OnKillRollUpTimer();

Remarks

CMultiPaneFrameWnd::OnPaneRecalcLayout

virtual void OnPaneRecalcLayout();

Remarks

CMultiPaneFrameWnd::OnSetRollUpTimer

virtual void OnSetRollUpTimer();

Remarks

CMultiPaneFrameWnd::OnShowPane

virtual void OnShowPane(
    CDockablePane* pBar,
    BOOL bShow);

Parameters

[in] pBar
[in] bShow

Remarks

CMultiPaneFrameWnd::PaneFromPoint

virtual CBasePane* PaneFromPoint(
    CPoint point,
    int nSensitivity,
    BOOL bCheckVisibility);

Parameters

[in] point
[in] nSensitivity
[in] bCheckVisibility

Return Value

Remarks

CMultiPaneFrameWnd::RemoveNonValidPanes

virtual void RemoveNonValidPanes();

Remarks

CMultiPaneFrameWnd::RemovePane

virtual void RemovePane(
    CBasePane* pBar,
    BOOL bDestroy = FALSE,
    BOOL bNoDelayedDestroy = TRUE);

Parameters

[in] pBar
[in] bDestroy
[in] bNoDelayedDestroy

Remarks

CMultiPaneFrameWnd::ReplacePane

virtual void ReplacePane(
    CBasePane* pBarOrg,
    CBasePane* pBarReplaceWith);

Parameters

[in] pBarOrg
[in] pBarReplaceWith

Remarks

CMultiPaneFrameWnd::SaveState

virtual BOOL SaveState(
    LPCTSTR lpszProfileName = NULL,
    UINT uiID = (UINT) -1);

Parameters

[in] lpszProfileName
[in] uiID

Return Value

Remarks

CMultiPaneFrameWnd::Serialize

virtual void Serialize(CArchive& ar);

Parameters

[in] ar

Remarks

CMultiPaneFrameWnd::SetDockState

virtual void SetDockState(CDockingManager* pDockManager);

Parameters

[in] pDockManager

Remarks

CMultiPaneFrameWnd::SetLastFocusedPane

void SetLastFocusedPane(HWND hwnd);

Parameters

[in] hwnd

Remarks

CMultiPaneFrameWnd::SetPreDockState

virtual BOOL SetPreDockState(
    AFX_PREDOCK_STATE preDockState,
    CBasePane* pBarToDock = NULL,
    AFX_DOCK_METHOD dockMethod = DM_MOUSE);

Parameters

[in] preDockState
[in] pBarToDock
[in] dockMethod

Return Value

Remarks

CMultiPaneFrameWnd::StoreRecentDockSiteInfo

virtual void StoreRecentDockSiteInfo(CPane* pBar);

Parameters

[in] pBar

Remarks

CMultiPaneFrameWnd::StoreRecentTabRelatedInfo

virtual void StoreRecentTabRelatedInfo(
    CDockablePane* pDockingBar,
    CDockablePane* pTabbedBar);

Parameters

[in] pDockingBar
[in] pTabbedBar

Remarks

See also

Hierarchy Chart
Classes
CPaneFrameWnd Class