CDockablePane
Klasse
Implementiert einen Bereich, der entweder an einem Dockstandort angedockt oder in einem Registerkartenbereich enthalten sein kann.
class CDockablePane : public CPane
Name | Beschreibung |
---|---|
CDockablePane::CDockablePane |
Erstellt und initialisiert ein CDockablePane -Objekt. |
Name | Beschreibung |
---|---|
CDockablePane::AttachToTabWnd |
Fügt einen Bereich an einen anderen Bereich an. Dadurch wird ein Bereich mit Registerkartenformat erstellt. |
CDockablePane::CalcFixedLayout |
Gibt die Größe des Bereichsrechtecks zurück. |
CDockablePane::CanAcceptMiniFrame |
Bestimmt, ob der angegebene Minirahmen an den Bereich angedockt werden kann. |
CDockablePane::CanAcceptPane |
Bestimmt, ob ein anderer Bereich an den aktuellen Bereich angedockt werden kann. |
CDockablePane::CanAutoHide |
Bestimmt, ob der Bereich den Modus für das automatische Ausblenden unterstützt. (Überschreibt CBasePane::CanAutoHide .) |
CDockablePane::CanBeAttached |
Bestimmt, ob der aktuelle Bereich an einen anderen Bereich angedockt werden kann. |
CDockablePane::ConvertToTabbedDocument |
Konvertiert einen oder mehrere andockbare Bereiche in MDI-Registerkartendokumente. |
CDockablePane::CopyState |
Kopiert den Zustand eines andockbaren Bereichs. |
CDockablePane::Create |
Erstellt das Windows-Steuerelement und fügt es an das CDockablePane -Objekt an. |
CDockablePane::CreateDefaultPaneDivider |
Erstellt eine Standardtrennlinie für den Bereich, während er an ein Rahmenfenster angedockt wird. |
CDockablePane::CreateEx |
Erstellt das Windows-Steuerelement und fügt es an das CDockablePane -Objekt an. |
CDockablePane::CreateTabbedPane |
Erstellt einen Registerkartenbereich aus dem aktuellen Bereich. |
CDockablePane::DockPaneContainer |
Dockt einen Container an den Bereich an. |
CDockablePane::DockPaneStandard |
Dockt einen Bereich mithilfe der Gliederung (Standard)-Andockung an. |
CDockablePane::DockToFrameWindow |
Intern verwendet. Verwenden Sie CPane::DockPane oder CDockablePane::DockToWindow , um einen Bereich anzudocken. |
CDockablePane::DockToRecentPos |
Dockt einen Bereich an seine gespeicherte zuletzt gespeicherte Andockposition an. |
CDockablePane::DockToWindow |
Dockt einen Andockbereich an einen anderen Andockbereich an. |
CDockablePane::EnableAutohideAll |
Aktiviert oder deaktiviert den Modus für das automatische Ausblenden für diesen Bereich zusammen mit anderen Bereichen im Container. |
CDockablePane::EnableGripper |
Blendet die Beschriftung (Ziehelement) ein oder aus. |
CDockablePane::GetAHRestoredRect |
Gibt die Position des Bereichs an, wenn er im Modus für das automatische Ausblenden sichtbar ist. |
CDockablePane::GetAHSlideMode |
Ruft den Automatischen Ausblenden des Folienmodus für den Bereich ab. |
CDockablePane::GetAutoHideButton |
Intern verwendet. |
CDockablePane::GetAutoHideToolBar |
Intern verwendet. |
CDockablePane::GetCaptionHeight |
Gibt die Höhe der aktuellen Beschriftung zurück. |
CDockablePane::GetDefaultPaneDivider |
Gibt die Standardbereichstrennlinie für den Container des Bereichs zurück. |
CDockablePane::GetDockingStatus |
Bestimmt die Möglichkeit eines Bereichs, basierend auf der bereitgestellten Zeigerposition angedockt zu werden. |
CDockablePane::GetDragSensitivity |
Gibt die Ziehempfindlichkeit eines Andockbereichs zurück. |
CDockablePane::GetLastPercentInPaneContainer |
Ruft den Prozentsatz des Platzes ab, den ein Bereich innerhalb seines Containers belegt. |
CDockablePane::GetTabArea |
Ruft den Registerkartenbereich für den Bereich ab. |
CDockablePane::GetTabbedPaneRTC |
Gibt die Laufzeitklasseninformationen zu einem Registerkartenfenster zurück, das erstellt wird, wenn ein anderer Bereich an den aktuellen Bereich angedockt wird. |
CDockablePane::HasAutoHideMode |
Gibt an, ob ein Andockbereich in den Modus für das automatische Ausblenden umgeschaltet werden kann. |
CDockablePane::HitTest |
Gibt die bestimmte Position in einem Bereich an, in dem der Benutzer mit der Maus klickt. |
CDockablePane::IsAccessibilityCompatible |
Intern verwendet. |
CDockablePane::IsAutohideAllEnabled |
Gibt an, ob der Andockbereich und alle anderen Bereiche im Container im Modus für das automatische Ausblenden platziert werden können. |
CDockablePane::IsAutoHideMode |
Bestimmt, ob sich ein Bereich im Modus "Automatisch ausblenden" befindet. |
CDockablePane::IsChangeState |
Intern verwendet. |
CDockablePane::IsDocked |
Bestimmt, ob der aktuelle Bereich angedockt ist. |
CDockablePane::IsHideInAutoHideMode |
Bestimmt das Verhalten eines Bereichs, der sich im Modus zum automatischen Ausblenden befindet, wenn er durch Aufrufen von ShowPane angezeigt (oder ausgeblendet) wird. |
CDockablePane::IsInFloatingMultiPaneFrameWnd |
Gibt an, ob sich der Bereich in einem Fenster mit mehreren Fenstern befindet. |
CDockablePane::IsResizable |
Gibt an, ob die Größe des Bereichs geändert werden kann. |
CDockablePane::IsTabLocationBottom |
Gibt an, ob sich Registerkarten oben oder unten im Bereich befinden. |
CDockablePane::IsTracked |
Gibt an, ob ein Bereich vom Benutzer gezogen wird. |
CDockablePane::IsVisible |
Bestimmt, ob der aktuelle Bereich sichtbar ist. |
CDockablePane::LoadState |
Intern verwendet. |
CDockablePane::OnAfterChangeParent |
Wird vom Framework aufgerufen, wenn sich das übergeordnete Element eines Bereichs geändert hat. (Überschreibt CPane::OnAfterChangeParent .) |
CDockablePane::OnAfterDockFromMiniFrame |
Wird vom Framework aufgerufen, wenn eine unverankerte Andockleiste an einem Rahmenfenster verankert ist. |
CDockablePane::OnBeforeChangeParent |
Wird vom Framework aufgerufen, wenn sich das übergeordnete Element des Bereichs ändert. (Überschreibt CPane::OnBeforeChangeParent .) |
CDockablePane::OnBeforeFloat |
Wird vom Framework aufgerufen, wenn ein Bereich in der Zeit zum Gleiten ist. (Überschreibt CPane::OnBeforeFloat .) |
CDockablePane::RemoveFromDefaultPaneDividier |
Das Framework ruft diese Methode auf, wenn ein Bereich abgedocken wird. |
CDockablePane::ReplacePane |
Ersetzt den Bereich durch einen angegebenen Bereich. |
CDockablePane::RestoreDefaultPaneDivider |
Das Framework ruft diese Methode als Bereich auf, um die Standardbereichstrennlinie wiederherzustellen. |
CDockablePane::SaveState |
Intern verwendet. |
CDockablePane::Serialize |
Serialisiert den Bereich. (Überschreibt CBasePane::Serialize .) |
CDockablePane::SetAutoHideMode |
Schaltet den Andockbereich zwischen dem sichtbaren und automatischen Ausblenden um. |
CDockablePane::SetAutoHideParents |
Legt die Schaltfläche zum automatischen Ausblenden und die Symbolleiste für das automatische Ausblenden für den Bereich fest. |
CDockablePane::SetDefaultPaneDivider |
Intern verwendet. |
CDockablePane::SetLastPercentInPaneContainer |
Legt den Prozentsatz des Platzes fest, den ein Bereich innerhalb seines Containers belegt. |
CDockablePane::SetResizeMode |
Intern verwendet. |
CDockablePane::SetRestoredDefaultPaneDivider |
Legt die wiederhergestellte Standardbereichstrennlinie fest. |
CDockablePane::SetTabbedPaneRTC |
Legt die Laufzeitklasseninformationen für ein Registerkartenfenster fest, das erstellt wird, wenn zwei Bereiche miteinander andocken. |
CDockablePane::ShowPane |
Blendet einen Bereich ein oder aus. |
CDockablePane::Slide |
Blendet einen Bereich mit einer Schiebeanimation ein oder aus, die nur angezeigt wird, wenn sich der Bereich im Modus zum automatischen Ausblenden befindet. |
CDockablePane::ToggleAutoHide |
Schaltet den Modus zum automatischen Ausblenden um. (Überschreibt CPane::ToggleAutoHide .) |
CDockablePane::UndockPane |
Hebt einen Bereich entweder vom Hauptrahmenfenster oder einem Miniframefenstercontainer ab. |
CDockablePane::UnSetAutoHideMode |
Intern verwendet. Verwenden Sie CDockablePane::SetAutoHideMode , um den Modus für das automatische Ausblenden festzulegen. |
Name | Beschreibung |
---|---|
CDockablePane::CheckAutoHideCondition |
Bestimmt, ob der Andockbereich ausgeblendet ist (im Modus für das automatische Ausblenden). |
CDockablePane::CheckStopSlideCondition |
Bestimmt, wann ein Andockbereich automatisch ausgeblendet werden soll, wenn das Ziehen beendet werden soll. |
CDockablePane::DrawCaption |
Zeichnet die Beschriftung des Andockbereichs (Ziehelement). |
CDockablePane::OnPressButtons |
Wird aufgerufen, wenn der Benutzer eine andere Beschriftungsschaltfläche als die Schaltflächen AFX_HTCLOSE und AFX_HTMAXBUTTON drückt. |
CDockablePane::OnSlide |
Wird vom Framework aufgerufen, um den Auto-Ausblenden-Folieneffekt zu rendern, wenn der Bereich entweder angezeigt oder ausgeblendet wird. |
Name | Beschreibung |
---|---|
CDockablePane::m_bDisableAnimation |
Gibt an, ob die Animation für das automatische Ausblenden des andockbaren Bereichs deaktiviert ist. |
CDockablePane::m_bHideInAutoHideMode |
Bestimmt das Verhalten des Bereichs, wenn sich der Bereich im Modus "Automatisch ausblenden" befindet. |
CDockablePane::m_nSlideSteps |
Gibt die Animationsgeschwindigkeit des Bereichs an, wenn er beim automatischen Ausblenden angezeigt oder ausgeblendet wird. |
CDockablePane
implementiert die folgenden Funktionen:
Andocken eines Bereichs an ein Hauptrahmenfenster.
Wechseln eines Bereichs zum automatischen Ausblenden.
Anfügen eines Bereichs an ein Registerkartenfenster.
Gleiten eines Bereichs in einem Miniframefenster.
Andocken eines Bereichs an einen anderen Bereich, der in einem Miniframefenster unverankert ist.
Ändern der Größe eines Bereichs
Lade- und Speicherzustand für einen Andockbereich.
Hinweis
Statusinformationen werden in der Windows-Registrierung gespeichert.
Erstellen eines Bereichs mit oder ohne Beschriftung Die Beschriftung kann eine Textbeschriftung aufweisen und mit einer Farbverlauffarbe gefüllt werden.
Ziehen eines Bereichs beim Anzeigen des Inhalts des Bereichs
Ziehen eines Bereichs beim Anzeigen eines Ziehrechtecks.
Um einen Andockbereich in Ihrer Anwendung zu verwenden, leiten Sie Ihre Bereichsklasse von der CDockablePane
Klasse ab. Betten Sie das abgeleitete Objekt entweder in das Hauptrahmenfensterobjekt oder in ein Fensterobjekt ein, das die Instanz des Bereichs steuert. Rufen Sie dann die CDockablePane::Create
-Methode oder die CDockablePane::CreateEx
-Methode auf, wenn Sie die WM_CREATE
Nachricht im Hauptrahmenfenster verarbeiten. Richten Sie schließlich das Bereichsobjekt ein, indem Sie CBasePane::EnableDocking
, CBasePane::DockPane
oder CDockablePane::AttachToTabWnd
aufrufen.
Die folgenden Tipps gelten für CDockablePane
Objekte:
Wenn Sie
CDockablePane::AttachToTabWnd
für zwei nicht tabstoppfähige Bereiche aufrufen, wird ein Zeiger auf ein Registerkartenfenster imppTabbedControlBar
-Parameter zurückgegeben. Mit diesem Parameter können Sie dem Fenster "Registerkarten" weiterhin Registerkarten hinzufügen.Die Art des Registerkartenbereichs, der von
CDockablePane::AttachToTabWnd
erstellt wird, wird durch dasCDockablePane
-Objekt impTabControlBarAttachTo
-Parameter bestimmt. Sie könnenCDockablePane::SetTabbedPaneRTC
aufrufen, um die Art des Registerkartenbereichs festzulegen, den dieCDockablePane
erstellt. Der Standardtyp wird durch dendwTabbedStyle
vonCDockablePane::Create
bestimmt, wenn Sie dieCDockablePane
erstellen. WenndwTabbedStyle
AFX_CBRS_OUTLOOK_TABS
ist, ist der StandardtypCMFCOutlookBar
Class; wenndwTabbedStyle
AFX_CBRS_REGULAR_TABS
der StandardtypCTabbedPane
Classist.Wenn Sie einen andockbaren Bereich an einen anderen andocken möchten, rufen Sie die
CDockablePane::DockToWindow
-Methode auf. Der ursprüngliche Bereich muss an einer beliebigen Stelle angedockt werden, bevor Sie diese Methode aufrufen.Die Membervariable
CDockablePane::m_bHideInAutoHideMode
steuert, wie sich andockbare Bereiche im Modus "Automatisches Ausblenden" verhalten, wenn SieCDockablePane::ShowPane
aufrufen. Wenn diese Membervariable aufTRUE
festgelegt ist, werden andockbare Bereiche und deren Schaltflächen zum automatischen Ausblenden ausgeblendet. Andernfalls werden sie ein- und ausziehen.Sie können die Animation zum automatischen Ausblenden deaktivieren, indem Sie die
CDockablePane::m_bDisableAnimation
Membervariable aufTRUE
festlegen.
Im folgenden Beispiel wird veranschaulicht, wie Sie ein CDockablePane
-Objekt mithilfe verschiedener Methoden in der CDockablePane
-Klasse konfigurieren. Das Beispiel veranschaulicht, wie Sie das Feature "Alle automatisch ausblenden" für den andockbaren Bereich aktivieren, die Beschriftung oder das Ziehelement aktivieren, den Auto-Hide-Modus aktivieren, den Bereich anzeigen und einen Bereich animieren, der sich im Modus "Automatisch ausblenden" befindet. Dieser Codeausschnitt ist Teil des Visual Studio Demo-Beispiels.
// GetOwner is an inherited method.
CDockablePane *pParentBar = DYNAMIC_DOWNCAST(CDockablePane, GetOwner());
pParentBar->EnableAutohideAll();
pParentBar->EnableGripper(true);
pParentBar->SetAutoHideMode(true, CBRS_ALIGN_LEFT);
pParentBar->ShowPane(true, false, true);
pParentBar->Slide(true);
Kopfzeile:afxDockablePane.h
Fügt den aktuellen Bereich an einen Zielbereich an und erstellt einen Registerkartenbereich.
virtual CDockablePane* AttachToTabWnd(
CDockablePane* pTabControlBarAttachTo,
AFX_DOCK_METHOD dockMethod,
BOOL bSetActive= TRUE,
CDockablePane** ppTabbedControlBar = NULL);
pTabControlBarAttachTo
[in, out] Gibt den Zielbereich an, an den der aktuelle Bereich angefügt ist. Der Zielbereich muss ein andockbarer Bereich sein.
dockMethod
[in] Gibt die Docking-Methode an.
bSetActive
[in] TRUE
, um den Registerkartenbereich nach dem Anfügenvorgang zu aktivieren; andernfalls FALSE
.
ppTabbedControlBar
[out] Enthält den Registerkartenbereich, der aus dem Anfügen-Vorgang resultiert.
Ein Zeiger auf den aktuellen Bereich, wenn es sich nicht um einen Registerkartenbereich handelt; andernfalls ein Zeiger auf den Registerkartenbereich, der aus dem Anfügevorgang resultiert. Der Rückgabewert wird NULL
, wenn der aktuelle Bereich nicht angefügt werden kann oder wenn ein Fehler auftritt.
Wenn ein andockbarer Bereich mit dieser Methode an einen anderen Bereich angefügt wird, tritt Folgendes auf:
Das Framework überprüft, ob der Zielbereich
pTabControlBarAttachTo
ein regulärer Andockbereich ist oder ob er vonCBaseTabbedPane
abgeleitet ist.Wenn der Zielbereich ein Registerkartenbereich ist, fügt das Framework den aktuellen Bereich als Registerkarte hinzu.
Wenn der Zielbereich ein regulärer Andockbereich ist, erstellt das Framework einen Registerkartenbereich.
Das Framework ruft
pTabControlBarAttachTo->CreateTabbedPane
auf. Die Formatvorlage des neuen Registerkartenbereichs hängt vomm_pTabbedControlBarRTC
Mitglied ab. Standardmäßig ist dieser Member auf die Laufzeitklasse vonCTabbedPane
festgelegt. Wenn Sie dieAFX_CBRS_OUTLOOK_TABS
Formatvorlage alsdwTabbedStyle
-Parameter an dieCDockablePane::Create
-Methode übergeben, wird das Laufzeitklassenobjekt auf die Laufzeitklasse vonCMFCOutlookBar
festgelegt. Sie können dieses Element jederzeit ändern, um die Formatvorlage des neuen Bereichs zu ändern.Wenn diese Methode einen Registerkartenbereich erstellt, ersetzt das Framework den Mauszeiger auf
pTabControlBarAttachTo
(wenn der Bereich in einem Mehr-Miniframe-Fenster verankert oder unverankert ist) durch einen Zeiger auf den neuen Registerkartenbereich.Das Framework fügt den
pTabControlBarAttachTo
Bereich als erste Registerkarte zum Registerkartenbereich hinzu. Das Framework fügt dann den aktuellen Bereich als zweite Registerkarte hinzu.
Wenn der aktuelle Bereich von
CBaseTabbedPane
abgeleitet wird, werden alle registerkarten inpTabControlBarAttachTo
verschoben und der aktuelle Bereich wird zerstört. Achten Sie daher darauf, wenn Sie diese Methode aufrufen, da ein Zeiger auf den aktuellen Bereich möglicherweise ungültig ist, wenn die Methode zurückgegeben wird.
Wenn Sie beim Erstellen eines Andocklayouts einen Bereich an eine andere anfügen, legen Sie dockMethod
auf DM_SHOW
fest.
Sie sollten den ersten Bereich andocken, bevor Sie einen anderen Bereich anfügen.
Gibt die Größe des Bereichsrechtecks zurück.
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
bStretch
[in] Wird nicht verwendet.
bHorz
[in] Wird nicht verwendet.
Ein CSize
-Objekt, das die Größe des Bereichsrechtecks enthält.
Bestimmt, ob der angegebene Miniframe an den Bereich angedockt werden kann.
virtual BOOL CanAcceptMiniFrame(CPaneFrameWnd* pMiniFrame) const;
pMiniFrame
[in] Zeiger auf ein CPaneFrameWnd
-Objekt.
TRUE
, wenn pMiniFrame
an den Bereich angedockt werden kann; andernfalls FALSE
.
Bestimmt, ob ein anderer Bereich an den aktuellen Bereich angedockt werden kann.
virtual BOOL CanAcceptPane(const CBasePane* pBar) const;
pBar
[in] Gibt den Bereich an, der an den aktuellen Bereich angedockt werden soll.
TRUE
, wenn der angegebene Bereich an diesen Bereich angedockt werden kann; andernfalls FALSE
.
Das Framework ruft diese Methode auf, bevor ein Bereich an den aktuellen Bereich angedockt wird.
Überschreiben Sie diese Funktion in einer abgeleiteten Klasse, um das Andocken an einen bestimmten Bereich zu aktivieren oder zu deaktivieren.
Standardmäßig gibt diese Methode TRUE
zurück, wenn entweder pBar
oder das übergeordnete Element vom Typ CDockablePane
ist.
Bestimmt, ob der Bereich automatisch ausgeblendet werden kann.
virtual BOOL CanAutoHide() const;
TRUE
, wenn der Bereich automatisch ausgeblendet werden kann; andernfalls FALSE
.
CDockablePane::CanAutoHide
gibt in einer der folgenden Situationen FALSE
zurück:
Der Bereich hat kein übergeordnetes Element.
Der Andock-Manager lässt das automatische Ausblenden von Bereichen nicht zu.
Der Bereich ist nicht angedockt.
Bestimmt, ob der aktuelle Bereich an einen anderen Bereich angedockt werden kann.
virtual BOOL CanBeAttached() const;
TRUE
, wenn der andockbare Bereich an einen anderen Bereich oder an das Hauptrahmenfenster angedockt werden kann; andernfalls FALSE
.
Standardmäßig gibt diese Methode immer TRUE
zurück. Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um das Andocken zu aktivieren oder zu deaktivieren, ohne CBasePane::EnableDocking
aufzurufen.
Erstellt und initialisiert ein CDockablePane
-Objekt.
CDockablePane();
Rufen Sie nach dem Erstellen eines dockbaren Bereichsobjekts CDockablePane::Create
oder CDockablePane::CreateEx
auf, um es zu erstellen.
Konvertiert einen oder mehrere andockbare Bereiche in MDI-Registerkartendokumente.
virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);
bActiveTabOnly
[in] Wenn Sie eine CTabbedPane
konvertieren, geben Sie TRUE
an, um nur die aktive Registerkarte zu konvertieren. Geben Sie FALSE
an, um alle Registerkarten im Bereich zu konvertieren.
Bestimmt, ob der Andockbereich ausgeblendet ist (auch als Autohide-Modus bezeichnet).
virtual BOOL CheckAutoHideCondition();
TRUE
, wenn die Bedingung zum Ausblenden erfüllt ist; andernfalls FALSE
.
Das Framework verwendet einen Timer, um regelmäßig zu überprüfen, ob ein automatisch verankerter Bereich ausgeblendet werden soll. Die Methode gibt TRUE
zurück, wenn der Bereich nicht aktiv ist, die Größe des Bereichs nicht geändert wird und der Mauszeiger nicht über dem Bereich liegt.
Wenn alle vorherigen Bedingungen erfüllt sind, ruft das Framework CDockablePane::Slide
auf, um den Bereich auszublenden.
Bestimmt, wann ein Autohide-Andockbereich nicht mehr gleiten soll.
virtual BOOL CheckStopSlideCondition(BOOL bDirection);
bDirection
[in] TRUE
, wenn der Bereich sichtbar ist; FALSE
, wenn der Bereich ausgeblendet ist.
TRUE
, wenn die Beendigungsbedingung erfüllt ist; andernfalls FALSE
.
Wenn ein andockbarer Bereich auf den Automatischen Modus festgelegt ist, verwendet das Framework Gleiteffekte, um den Bereich ein- oder auszublenden. Das Framework ruft diese Funktion auf, wenn der Bereich gleitet.
CheckStopSlideCondition
gibt TRUE
zurück, wenn der Bereich vollständig sichtbar ist oder wenn er vollständig ausgeblendet ist.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefinierte Autohideeffekte zu implementieren.
Kopiert den Zustand eines andockbaren Bereichs.
virtual void CopyState(CDockablePane* pOrgBar);
pOrgBar
[in] Ein Zeiger auf einen andockbaren Bereich.
CDockablePane::CopyState
kopiert den Status von pOrgBar
in den aktuellen Bereich, indem die folgenden Methoden aufgerufen werden:
Erstellt das Windows-Steuerelement und fügt es an das CDockablePane
-Objekt an.
virtual BOOL Create(
LPCTSTR lpszCaption,
CWnd* pParentWnd,
const RECT& rect,
BOOL bHasGripper,
UINT nID,
DWORD dwStyle,
DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS,
DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE,
CCreateContext* pContext = NULL);
virtual BOOL Create(
LPCTSTR lpszWindowName,
CWnd* pParentWnd,
CSize sizeDefault,
BOOL bHasGripper,
UINT nID,
DWORD dwStyle = WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_HIDE_INPLACE,
DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS,
DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE);
lpszCaption
[in] Gibt den Fensternamen an.
pParentWnd
[in, out] Gibt das übergeordnete Fenster an.
rect
[in] Gibt die Größe und Position des Fensters in Clientkoordinaten von pParentWnd
an.
bHasGripper
[in] TRUE
, um den Bereich mit einer Beschriftung zu erstellen; andernfalls FALSE
.
nID
[in] Gibt die ID des untergeordneten Fensters an. Dieser Wert muss eindeutig sein, wenn Sie den Andockzustand für diesen Andockbereich speichern möchten.
dwStyle
[in] Gibt die Attribute der Fensterformatvorlage an.
dwTabbedStyle
[in] Gibt das Format eines Registerkartenfensters an, das erstellt wird, wenn der Benutzer einen Bereich auf die Beschriftung dieses Bereichs zieht.
dwControlBarStyle
[in] Gibt zusätzliche Formatvorlagenattribute an.
pContext
[in, out] Gibt den Erstellungskontext des Fensters an.
lpszWindowName
[in] Gibt den Fensternamen an.
sizeDefault
[in] Gibt die Größe des Fensters an.
TRUE
, wenn der andockbare Bereich erfolgreich erstellt wurde; andernfalls FALSE
.
Erstellt einen Windows-Bereich und fügt ihn an das CDockablePane
-Objekt an.
Wenn das dwStyle
Fensterformat das CBRS_FLOAT_MULTI
Flag aufweist, kann das Miniframefenster mit anderen Bereichen im Miniframefenster angezeigt werden. Andockbereiche können standardmäßig nur einzeln schweben.
Wenn der dwTabbedStyle
-Parameter das AFX_CBRS_OUTLOOK_TABS
Flag angegeben hat, erstellt der Bereich Registerkartenbereiche im Outlook-Stil, wenn ein anderer Bereich mithilfe der CDockablePane::AttachToTabWnd
-Methode an diesen Bereich angefügt wird. Standardmäßig erstellen andockbare Bereiche reguläre Registerkartenbereiche vom Typ CTabbedPane
.
Erstellt eine Standardtrennlinie für den Bereich, während er an ein Rahmenfenster angedockt wird.
static CPaneDivider* __stdcall CreateDefaultPaneDivider(
DWORD dwAlignment,
CWnd* pParent,
CRuntimeClass* pSliderRTC = NULL);
dwAlignment
[in] Gibt die Seite des Hauptrahmens an, an die der Bereich angedockt wird. Wenn dwAlignment
das kennzeichen CBRS_ALIGN_LEFT
oder CBRS_ALIGN_RIGHT
enthält, erstellt diese Methode eine vertikale Trennlinie (CPaneDivider::SS_VERT
) andernfalls erstellt diese Methode eine horizontale (CPaneDivider::SS_HORZ
) Trennlinie.
pParent
[in] Zeiger auf den übergeordneten Frame.
pSliderRTC
[in] Wird nicht verwendet.
Diese Methode gibt einen Zeiger auf die neu erstellte Trennlinie zurück oder NULL
, wenn die Trennlinienerstellung fehlschlägt.
dwAlignment
kann eine der folgenden Werte sein:
Wert | Beschreibung |
---|---|
CBRS_ALIGN_TOP |
Der Bereich wird am oberen Rand des Clientbereichs eines Rahmenfensters angedockt. |
CBRS_ALIGN_BOTTOM |
Der Bereich wird am unteren Rand des Clientbereichs eines Rahmenfensters angedockt. |
CBRS_ALIGN_LEFT |
Der Bereich wird an der linken Seite des Clientbereichs eines Rahmenfensters angedockt. |
CBRS_ALIGN_RIGHT |
Der Bereich wird an der rechten Seite des Clientbereichs eines Rahmenfensters angedockt. |
Erstellt das Windows-Steuerelement und fügt es an das CDockablePane
-Objekt an.
virtual BOOL CreateEx(
DWORD dwStyleEx,
LPCTSTR lpszCaption,
CWnd* pParentWnd,
const RECT& rect,
BOOL bHasGripper,
UINT nID,
DWORD dwStyle,
DWORD dwTabbedStyle = AFX_CBRS_REGULAR_TABS,
DWORD dwControlBarStyle = AFX_DEFAULT_DOCKING_PANE_STYLE,
CCreateContext* pContext = NULL);
dwStyleEx
[in] Gibt die erweiterten Formatvorlagenattribute für das neue Fenster an.
lpszCaption
[in] Gibt den Fensternamen an.
pParentWnd
[in, out] Gibt das übergeordnete Fenster an.
rect
[in] Gibt die Größe und Position des Fensters in Clientkoordinaten von pParentWnd
an.
bHasGripper
[in] TRUE
, um den Bereich mit einer Beschriftung zu erstellen; andernfalls FALSE
.
nID
[in] Gibt die ID des untergeordneten Fensters an. Dieser Wert muss eindeutig sein, wenn Sie den Andockzustand für diesen Andockbereich speichern möchten.
dwStyle
[in] Gibt die Attribute der Fensterformatvorlage an.
dwTabbedStyle
[in] Gibt das Format eines Registerkartenfensters an, das erstellt wird, wenn der Benutzer einen Bereich auf die Beschriftung dieses Bereichs zieht.
dwControlBarStyle
[in] Gibt die zusätzlichen Formatvorlagenattribute an.
pContext
[in, out] Gibt den Erstellungskontext des Fensters an.
TRUE
, wenn der andockbare Bereich erfolgreich erstellt wurde; andernfalls FALSE
.
Erstellt einen Windows-Bereich und fügt ihn an das CDockablePane
-Objekt an.
Wenn das dwStyle
Fensterformat das CBRS_FLOAT_MULTI
Flag aufweist, kann das Miniframefenster mit anderen Bereichen im Miniframefenster angezeigt werden. Andockbereiche können standardmäßig nur einzeln schweben.
Wenn der dwTabbedStyle
-Parameter das AFX_CBRS_OUTLOOK_TABS
Flag angegeben hat, erstellt der Bereich Registerkartenbereiche im Outlook-Stil, wenn ein anderer Bereich mithilfe der CDockablePane::AttachToTabWnd
-Methode an diesen Bereich angefügt wird. Standardmäßig erstellen andockbare Bereiche reguläre Registerkartenbereiche vom Typ CTabbedPane
.
Erstellt einen Registerkartenbereich aus dem aktuellen Bereich.
virtual CTabbedPane* CreateTabbedPane();
Der neue Registerkartenbereich oder NULL
, wenn der Erstellungsvorgang fehlgeschlagen ist.
Das Framework ruft diese Methode auf, wenn ein Registerkartenbereich erstellt wird, um diesen Bereich zu ersetzen. Weitere Informationen finden Sie unter CDockablePane::AttachToTabWnd
.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um anzupassen, wie Registerkartenbereiche erstellt und initialisiert werden.
Der Registerkartenbereich wird gemäß den im m_pTabbedControlBarRTC
Member gespeicherten Laufzeitklasseninformationen erstellt, die von der CDockablePane::CreateEx
-Methode initialisiert werden.
Dockt einen Container an den Bereich an.
virtual BOOL DockPaneContainer(
CPaneContainerManager& barContainerManager,
DWORD dwAlignment,
AFX_DOCK_METHOD dockMethod);
barContainerManager
[in] Ein Verweis auf den Container-Manager des Containers, der angedockt wird.
dwAlignment
[in] DWORD
, die die Seite des Bereichs angibt, an den der Container angedockt wird.
dockMethod
[in] Wird nicht verwendet.
TRUE
, wenn der Container erfolgreich an den Bereich angedockt wurde; andernfalls FALSE
.
dwAlignment
kann eine der folgenden Werte sein:
Wert | Beschreibung |
---|---|
CBRS_ALIGN_TOP |
Der Container wird am oberen Rand des Bereichs angedockt. |
CBRS_ALIGN_BOTTOM |
Der Container wird am unteren Rand des Bereichs angedockt. |
CBRS_ALIGN_LEFT |
Der Container wird links neben dem Bereich angedockt. |
CBRS_ALIGN_RIGHT |
Der Container wird rechts neben dem Bereich angedockt. |
Dockt einen Bereich mithilfe der Gliederung (Standard)-Andockung an.
virtual CPane* DockPaneStandard(BOOL& bWasDocked);
bWasDocked
[in] Wenn die Methode zurückgegeben wird, enthält dieser Wert TRUE
, wenn der Bereich erfolgreich angedockt wurde; andernfalls enthält es FALSE
.
Wenn der Bereich an ein Registerkartenfenster angedockt wurde oder ein Registerkartenfenster aufgrund des Andockens erstellt wurde, gibt diese Methode einen Zeiger auf das Registerkartenfenster zurück. Wenn der Bereich andernfalls erfolgreich angedockt wurde, gibt diese Methode den this
Zeiger zurück. Wenn das Andocken fehlgeschlagen ist, gibt diese Methode NULL
zurück.
Verankert einen Bereich an der gespeicherten Andockposition.
BOOL CDockablePane::DockToRecentPos();
TRUE
, wenn der Bereich erfolgreich angedockt ist; andernfalls FALSE
.
Andockbare Bereiche speichern aktuelle Andockinformationen in einem CRecentDockSiteInfo
-Objekt.
Dockt einen Andockbereich an einen anderen Andockbereich an.
virtual BOOL DockToWindow(
CDockablePane* pTargetWindow,
DWORD dwAlignment,
LPCRECT lpRect = NULL);
pTargetWindow
[in, out] Gibt den andockbaren Bereich an, an den dieser Bereich angedockt werden soll.
dwAlignment
[in] Gibt die Andockausrichtung für den Bereich an. Kann einer von CBRS_ALIGN_LEFT
, CBRS_ALIGN_TOP
, CBRS_ALIGN_RIGHT
, CBRS_ALIGN_BOTTOM
oder CBRS_ALIGN_ANY
sein. (Definiert in afxres.h
.)
lpRect
[in] Gibt das Andockrechteck für den Bereich an.
TRUE
, ob der Bereich erfolgreich angedockt wurde; andernfalls FALSE
.
Rufen Sie diese Methode auf, um einen Bereich mit der durch dwAlignment
angegebenen Ausrichtung an einen anderen Bereich anzudocken.
Zeichnet die Beschriftung (auch als Ziehelement bezeichnet) eines Andockbereichs.
virtual void DrawCaption(
CDC* pDC,
CRect rectCaption);
pDC
[in] Stellt den Gerätekontext dar, der für die Zeichnung verwendet wird.
rectCaption
[in] Gibt das umgebende Rechteck der Beschriftung des Bereichs an.
Das Framework ruft diese Methode auf, um die Beschriftung eines andockbaren Bereichs zu zeichnen.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um die Darstellung der Beschriftung anzupassen.
Aktiviert oder deaktiviert den Autohidemodus für diesen Bereich und für andere Bereiche im Container.
void EnableAutohideAll(BOOL bEnable = TRUE);
bEnable
[in] TRUE
, um das feature automatisch für den andockbaren Bereich zu aktivieren; andernfalls FALSE
.
Wenn ein Benutzer die STRG--Taste hält und auf die Schaltfläche "Anheften" klickt, um einen Bereich in den Autohidemodus zu wechseln, werden alle anderen Bereiche im selben Container ebenfalls in den Autohidemodus umgeschaltet.
Rufen Sie diese Methode auf, wobei bEnable
auf FALSE
festgelegt ist, um dieses Feature für einen bestimmten Bereich zu deaktivieren.
Blendet die Beschriftung ein oder aus (auch als Ziehelement bezeichnet).
virtual void EnableGripper(BOOL bEnable);
bEnable
[in] TRUE
, um die Beschriftung zu aktivieren; andernfalls FALSE
.
Wenn das Framework andockbare Bereiche erstellt, verfügen sie nicht über das WS_STYLE
Fensterformat, auch wenn angegeben. Dies bedeutet, dass die Beschriftung des Bereichs ein nicht clientbasierter Bereich ist, der vom Framework gesteuert wird, dieser Bereich unterscheidet sich jedoch von der Standardfensterbeschriftung.
Sie können die Beschriftung jederzeit ein- oder ausblenden. Das Framework blendet die Beschriftung aus, wenn ein Bereich einem Registerkartenfenster als Registerkarte hinzugefügt wird oder wenn ein Bereich in einem Miniframefenster angezeigt wird.
Gibt die Position des Bereichs beim automatischen Ausblenden an.
CRect GetAHRestoredRect() const;
Ein CRect
-Objekt, das die Position des Bereichs enthält, wenn es sich im Modus für das automatische Ausblenden befindet.
Ruft den Automatisch ausblenden-Folienmodus für den Bereich ab.
virtual UINT GetAHSlideMode() const;
Ein UINT
, der den Automatisch-Ausblenden-Folienmodus für den Bereich angibt. Der Rückgabewert kann entweder AFX_AHSM_MOVE
oder AFX_AHSM_STRETCH
sein, die Implementierung verwendet jedoch nur AFX_AHSM_MOVE
.
Gibt die Höhe der aktuellen Beschriftung in Pixeln zurück.
virtual int GetCaptionHeight() const;
Die Höhe der Beschriftung in Pixel.
Die Beschriftungshöhe ist 0, wenn die Beschriftung durch die CDockablePane::EnableGripper
-Methode ausgeblendet wurde oder wenn der Bereich keine Beschriftung aufweist.
Gibt die Standardbereichstrennlinie für den Container des Bereichs zurück.
CPaneDivider* GetDefaultPaneDivider() const;
Ein gültiges CPaneDivider
-Objekt, wenn der andockbare Bereich an das Hauptrahmenfenster angedockt ist, oder NULL
, wenn der andockbare Bereich nicht angedockt ist oder ob er unverankert ist.
Weitere Informationen zu Bereichstrennern finden Sie unter CPaneDivider
Class.
Bestimmt die Möglichkeit eines Bereichs, basierend auf der bereitgestellten Zeigerposition angedockt zu werden.
virtual AFX_CS_STATUS GetDockingStatus(
CPoint pt,
int nSensitivity);
pt
[in] Die Position des Zeigers in Bildschirmkoordinaten.
nSensitivity
[in] Der Abstand in Pixeln vom Rand eines Rechtecks, den der Zeiger entfernt, muss das Andocken aktivieren.
Einer der folgenden Statuswerte:
wert AFX_CS_STATUS |
Bedeutung |
---|---|
CS_NOTHING |
Der Zeiger liegt nicht über einem Dockstandort. Das Framework dockt den Bereich nicht an. |
CS_DOCK_IMMEDIATELY |
Der Zeiger befindet sich im unmittelbaren Modus über dem Dockstandort (der Bereich verwendet den DT_IMMEDIATE Andockmodus). Das Framework dockt den Bereich sofort an. |
CS_DELAY_DOCK |
Der Zeiger befindet sich über einem Dockstandort, bei dem es sich um einen anderen Dockingbereich oder einen Rand des Hauptrahmens handelt. Das Framework dockt den Bereich nach einer Verzögerung an. Weitere Informationen zu dieser Verzögerung finden Sie im Abschnitt "Hinweise". |
CS_DELAY_DOCK_TO_TAB |
Der Zeiger befindet sich über einer Dockwebsite, die bewirkt, dass der Bereich in einem Registerkartenfenster verankert wird. Dies tritt auf, wenn sich der Zeiger über der Beschriftung eines anderen Andockbereichs oder über dem Registerkartenbereich eines Registerkartenbereichs befindet. |
Das Framework ruft diese Methode auf, um das Andocken eines unverankerten Bereichs zu behandeln.
Bei unverankerten Symbolleisten oder Andockbereichen, die den DT_IMMEDIATE
Andockmodus verwenden, verzögert das Framework den Dockbefehl, damit der Benutzer das Fenster vor dem Andocken aus dem Clientbereich des übergeordneten Frames verschieben kann. Die Länge der Verzögerung wird in Millisekunden gemessen und vom CDockingManager::m_nTimeOutBeforeToolBarDock
-Datenmemm gesteuert. Der Standardwert von CDockingManager::m_nTimeOutBeforeToolBarDock
ist 200. Dieses Verhalten emuliert das Andockverhalten von Microsoft Word 2007.
Bei verzögerten Andockzuständen (CS_DELAY_DOCK
und CS_DELAY_DOCK_TO_TAB
) wird das Framework erst andocken, wenn der Benutzer die Maustaste loslässt. Wenn ein Bereich den DT_STANDARD
Andockmodus verwendet, zeigt das Framework an der projizierten Docking-Position ein Rechteck an. Wenn ein Bereich den DT_SMART
Andockmodus verwendet, zeigt das Framework intelligente Andockmarkierungen und halbtransparente Rechtecke an der projizierten Docking-Position an. Rufen Sie die CBasePane::SetDockingMode
-Methode auf, um den Andockmodus für Ihren Bereich anzugeben. Weitere Informationen zum intelligenten Andocken finden Sie unter CDockingManager::GetSmartDockingParams
.
Gibt die Ziehempfindlichkeit eines Andockbereichs zurück.
static const CSize& GetDragSensitivity();
Ein CSize
-Objekt, das die Breite und Höhe eines Rechtecks in Pixeln enthält, das auf einem Ziehpunkt zentriert ist. Der Ziehvorgang beginnt erst, wenn der Mauszeiger außerhalb dieses Rechtecks bewegt wird.
Ruft den Prozentsatz des Platzes ab, den ein Bereich in seinem Container belegt ( CPaneContainer
Class).
int GetLastPercentInPaneContainer() const;
Ein int
, der den Prozentsatz des Platzes angibt, den der Bereich in seinem Container belegt.
Diese Methode wird verwendet, wenn der Container sein Layout anpasst.
Ruft den Registerkartenbereich für den Bereich ab.
virtual void GetTabArea(
CRect& rectTabAreaTop,
CRect& rectTabAreaBottom) const;
rectTabAreaTop
[in] GetTabArea
füllt diese Variable mit dem Registerkartenbereich aus, wenn sich Registerkarten am oberen Rand des Bereichs befinden. Wenn sich Registerkarten am unteren Rand des Bereichs befinden, wird diese Variable mit einem leeren Rechteck gefüllt.
rectTabAreaBottom
[in] GetTabArea
füllt diese Variable mit dem Registerkartenbereich aus, wenn sich Registerkarten am unteren Rand des Bereichs befinden. Wenn sich Registerkarten am oberen Rand des Bereichs befinden, wird diese Variable mit einem leeren Rechteck gefüllt.
Diese Methode wird nur in Klassen verwendet, die von CDockablePane
abgeleitet werden und Registerkarten aufweisen. Weitere Informationen finden Sie unter CTabbedPane::GetTabArea
und CMFCOutlookBar::GetTabArea
.
Gibt die Laufzeitklasseninformationen zu einem Registerkartenfenster zurück, das erstellt wird, wenn ein anderer Bereich an den aktuellen Bereich angedockt wird.
CRuntimeClass* GetTabbedPaneRTC() const;
Die Laufzeitklasseninformationen für den andockbaren Bereich.
Rufen Sie diese Methode auf, um die Laufzeitklasseninformationen für dynamisch erstellte Registerkartenbereiche abzurufen. Dies kann auftreten, wenn ein Benutzer einen Bereich in die Beschriftung eines anderen Bereichs zieht oder wenn Sie die CDockablePane::AttachToTabWnd
-Methode aufrufen, um programmgesteuert einen Registerkartenbereich aus zwei andockbaren Bereichen zu erstellen.
Sie können die Laufzeitklasseninformationen festlegen, indem Sie die CDockablePane::SetTabbedPaneRTC
-Methode aufrufen.
Gibt an, ob ein Andockbereich in den Automatischen Modus umgeschaltet werden kann.
virtual BOOL HasAutoHideMode() const;
TRUE
, wenn der andockbare Bereich in den Automatischen Modus umgeschaltet werden kann; andernfalls FALSE
.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um den Autohidemodus für einen bestimmten andockbaren Bereich zu deaktivieren.
Gibt die Position in einem Bereich an, in dem der Benutzer mit der Maus klickt.
virtual int HitTest(
CPoint point,
BOOL bDetectCaption = FALSE);
point
[in] Gibt den zu testden Punkt an.
bDetectCaption
[in] TRUE
, wenn HTCAPTION
zurückgegeben werden soll, wenn sich der Punkt auf der Beschriftung des Bereichs befindet; andernfalls FALSE
.
Einer der folgenden Werte:
HTNOWHERE
, wenn sichpoint
nicht im andockbaren Bereich befindet.HTCLIENT
, wennpoint
sich im Clientbereich des andockbaren Bereichs befindet.HTCAPTION
, wennpoint
sich im Beschriftungsbereich des andockbaren Bereichs befindet.AFX_HTCLOSE
, wenn sichpoint
auf der Schaltfläche "Schließen" befindet.HTMAXBUTTON
, wenn sichpoint
auf der Schaltfläche "Anheften" befindet.
Gibt an, ob der Andockbereich und alle anderen Bereiche im Container in den Autohidemodus gewechselt werden können.
virtual BOOL IsAutohideAllEnabled() const;
TRUE
, wenn der andockbare Bereich und alle anderen Bereiche im Container auf den Automatischen Modus umgestellt werden können; andernfalls FALSE
.
Ein Benutzer aktiviert den Automatischen Modus, indem er auf die Andocktaste klickt, während er die STRG--TASTE gedrückt hält.
Rufen Sie zum Aktivieren oder Deaktivieren dieses Verhaltens die CDockablePane::EnableAutohideAll
-Methode auf.
Bestimmt, ob sich ein Bereich im Automatischen Modus befindet.
virtual BOOL IsAutoHideMode() const;
TRUE
, wenn sich der andockbare Bereich im Automatischen Modus befindet; andernfalls FALSE
.
Bestimmt, ob der aktuelle Bereich angedockt ist.
virtual BOOL IsDocked() const;
TRUE
, wenn der andockbare Bereich nicht zu einem Miniframefenster gehört oder wenn er in einem Miniframefenster mit einem anderen Bereich unverankert ist.
FALSE
, wenn der Bereich ein untergeordnetes Element eines Miniframefensters ist und es keine anderen Bereiche gibt, die zum Miniframefenster gehören.
Rufen Sie CDockablePane::GetDefaultPaneDivider
auf, um zu ermitteln, ob der Bereich an das Hauptframefenster angedockt ist. Wenn die Methode einen Zeiger ohneNULL
zurückgibt, wird der Bereich am Hauptrahmenfenster angedockt.
Bestimmt das Verhalten eines Bereichs, der sich im Autohide-Modus befindet, wenn er durch Aufrufen von CDockablePane::ShowPane
angezeigt (oder ausgeblendet) wird.
virtual BOOL IsHideInAutoHideMode() const;
TRUE
, wenn der andockbare Bereich ausgeblendet werden soll, wenn er sich im Automatischen Modus befindet; andernfalls FALSE
.
Wenn sich ein andockbarer Bereich im Automatischen Modus befindet, verhält es sich anders, wenn Sie ShowPane
aufrufen, um den Bereich auszublenden oder anzuzeigen. Dieses Verhalten wird vom statischen Element CDockablePane::m_bHideInAutoHideMode
gesteuert. Wenn dieses Element TRUE
ist, wird der andockbare Bereich und die zugehörige Autohidesymbolleiste oder autohide-Schaltfläche ausgeblendet oder angezeigt, wenn Sie ShowPane
aufrufen. Andernfalls wird der andockbare Bereich aktiviert oder deaktiviert, und die zugehörige Autohidesymbolleiste oder autohide-Schaltfläche ist immer sichtbar.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um das Standardverhalten für einzelne Bereiche zu ändern.
Der Standardwert für m_bHideInAutoHideMode
ist FALSE
.
Gibt an, ob sich der Bereich in einem Fenster mit mehreren Fenstern befindet ( CMultiPaneFrameWnd Class
).
virtual BOOL IsInFloatingMultiPaneFrameWnd() const;
TRUE
, wenn sich der Bereich in einem Fenster mit mehreren Fenstern befindet; andernfalls FALSE
.
Gibt an, ob die Größe des Bereichs geändert werden kann.
virtual BOOL IsResizable() const;
TRUE
, wenn die Größe des Bereichs geändert werden kann; andernfalls FALSE
.
Standardmäßig können andockbare Bereiche in der Größe geändert werden. Um die Größenänderung zu verhindern, überschreiben Sie diese Methode in einer abgeleiteten Klasse, und geben Sie FALSE
zurück. Beachten Sie, dass ein FALSE
Wert zu einem fehlgeschlagenen ASSERT
in CPane::DockPane
führt. Verwenden Sie stattdessen CDockingManager::AddPane
, um einen Bereich innerhalb eines übergeordneten Frames anzudocken.
Bereiche, die nicht geändert werden können, können weder den Gleitkommamodus noch den Auto-Hide-Modus eingeben und befinden sich immer am äußeren Rand des übergeordneten Frames.
Gibt an, ob sich Registerkarten oben oder unten im Bereich befinden.
virtual BOOL IsTabLocationBottom() const;
TRUE
, wenn sich Registerkarten am unteren Rand des Bereichs befinden; FALSE
, wenn sich Registerkarten am oberen Rand des Bereichs befinden.
Weitere Informationen finden Sie unter CTabbedPane::IsTabLocationBottom
.
Gibt an, ob ein Bereich vom Benutzer verschoben wird.
BOOL IsTracked() const;
TRUE
, wenn der Bereich verschoben wird; andernfalls FALSE
.
Bestimmt, ob der aktuelle Bereich sichtbar ist.
virtual BOOL IsVisible() const;
TRUE
, wenn der andockbare Bereich sichtbar ist; andernfalls FALSE
.
Rufen Sie diese Methode auf, um zu ermitteln, ob ein andockbarer Bereich sichtbar ist. Sie können diese Methode verwenden, anstatt CWnd::IsWindowVisible
oder Tests für die WS_VISIBLE
Formatvorlage aufzurufen. Der zurückgegebene Sichtbarkeitszustand hängt davon ab, ob der Autohide-Modus aktiviert oder deaktiviert ist, und vom Wert der CDockablePane::IsHideInAutoHideMode
-Eigenschaft.
Wenn sich der andockbare Bereich im Autohidemodus befindet und IsHideInAutoHideMode
FALSE
den Sichtbarkeitszustand immer FALSE
zurückgibt.
Wenn sich der andockbare Bereich im Autohidemodus befindet und IsHideInAutoHideMode
TRUE
den Sichtbarkeitszustand zurückgibt, hängt vom Sichtbarkeitsstatus der zugehörigen Autohide-Symbolleiste ab.
Wenn sich der andockbare Bereich nicht im Automatischen Modus befindet, wird der Sichtbarkeitszustand durch die CBasePane::IsVisible
-Methode bestimmt.
Nur für die interne Verwendung. Weitere Details finden Sie im Quellcode im Ordner mfc
Ihrer Visual Studio-Installation. Beispiel: %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
.
virtual BOOL LoadState(
LPCTSTR lpszProfileName = NULL,
int nIndex = -1,
UINT uiID = (UINT) -1
);
Gibt an, ob die Animation für das automatische Einblenden des andockbaren Bereichs deaktiviert ist.
AFX_IMPORT_DATA static BOOL m_bDisableAnimation;
Bestimmt das Verhalten des Bereichs, wenn sich der Bereich im Autohidemodus befindet.
AFX_IMPORT_DATA static BOOL m_bHideInAutoHideMode;
Dieser Wert wirkt sich auf alle Andockbereiche in der Anwendung aus.
Wenn Sie dieses Element auf TRUE
festlegen, werden andockbare Bereiche ausgeblendet oder mit den zugehörigen automatischen Symbolleisten und Schaltflächen angezeigt, wenn Sie CDockablePane::ShowPane
aufrufen.
Wenn Sie dieses Mitglied auf FALSE
festlegen, werden andockbare Bereiche aktiviert oder deaktiviert, wenn Sie CDockablePane::ShowPane
aufrufen.
Gibt die Animationsgeschwindigkeit des Bereichs an, wenn er sich im Automatischen Modus befindet.
AFX_IMPORT_DATA static int m_nSlideSteps;
Verringern Sie diesen Wert, um einen schnelleren Animationseffekt zu erzielen. Erhöhen Sie diesen Wert für einen langsameren Animationseffekt.
Weitere Details finden Sie im Quellcode im Ordner mfc
Ihrer Visual Studio-Installation. Beispiel: %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
.
virtual void OnAfterChangeParent(CWnd* pWndOldParent);
[in] pWndOldParent
\
Wird vom Framework aufgerufen, wenn eine unverankerte Andockleiste an einem Rahmenfenster verankert ist.
virtual void OnAfterDockFromMiniFrame();
Standardmäßig führt diese Methode nichts aus.
Das Framework ruft diese Methode auf, bevor sie das übergeordnete Element des Bereichs ändert.
virtual void OnBeforeChangeParent(
CWnd* pWndNewParent,
BOOL bDelay = FALSE);
pWndNewParent
[in] Ein Zeiger auf das neue übergeordnete Fenster.
bDelay
[in] BOOL, das angibt, ob die Neuberechnung des Andocklayouts verzögert werden soll, wenn der Bereich abgedockt ist. Weitere Informationen finden Sie unter CDockablePane::UndockPane
.
Wenn der Bereich angedockt ist und das neue übergeordnete Element das Andocken nicht zulässt, wird der Bereich durch diese Methode aufgehoben.
Wenn der Bereich in ein Dokument mit Registerkarten konvertiert wird, speichert diese Methode die zuletzt verwendete Andockposition. Das Framework verwendet die zuletzt verwendete Andockposition, um die Position des Bereichs wiederherzustellen, wenn er wieder in einen angedockten Zustand konvertiert wird.
Das Framework ruft diese Methode auf, bevor ein Bereich in einen unverankerten Zustand wechselt.
virtual BOOL OnBeforeFloat(
CRect& rectFloat,
AFX_DOCK_METHOD dockMethod);
rectFloat
[in] Gibt die Position und Größe des Bereichs an, wenn er sich in einem unverankerten Zustand befindet.
dockMethod
[in] Gibt die Docking-Methode an. Eine Liste möglicher Werte finden Sie unter CPane::DockPane
.
TRUE
, ob der Bereich schwebbar ist; andernfalls FALSE
.
Diese Methode wird vom Framework aufgerufen, wenn ein Bereich im Hinblick auf den Gleitkommabereich angezeigt wird. Sie können diese Methode in einer abgeleiteten Klasse überschreiben, wenn Sie eine Verarbeitung durchführen möchten, bevor der Bereich schwebt.
Wird aufgerufen, wenn der Benutzer eine andere Beschriftungsschaltfläche als die Schaltflächen AFX_HTCLOSE
und AFX_HTMAXBUTTON
drückt.
virtual void OnPressButtons(UINT nHit);
nHit
[in] Dieser Parameter wird nicht verwendet.
Wenn Sie der Beschriftung eines andockbaren Bereichs eine benutzerdefinierte Schaltfläche hinzufügen, überschreiben Sie diese Methode, um Benachrichtigungen zu empfangen, wenn ein Benutzer die Schaltfläche drückt.
Wird vom Framework aufgerufen, um den Bereich zu animieren, wenn er sich im Automatischen Modus befindet.
virtual void OnSlide(BOOL bSlideOut);
bSlideOut
[in] TRUE
, um den Bereich anzuzeigen; FALSE
, um den Bereich auszublenden.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um benutzerdefinierte Autohideeffekte zu implementieren.
Das Framework ruft diese Methode auf, wenn ein Bereich abgedocken wird.
void RemoveFromDefaultPaneDividier();
Diese Methode legt die Standardbereichstrennlinie auf NULL
fest und entfernt den Bereich aus seinem Container.
Ersetzt den Bereich durch einen angegebenen Bereich.
BOOL ReplacePane(
CDockablePane* pBarToReplaceWith,
AFX_DOCK_METHOD dockMethod,
BOOL bRegisterWithFrame = FALSE);
pBarToReplaceWith
[in] Ein Zeiger auf einen andockbaren Bereich.
dockMethod
[in] Wird nicht verwendet.
bRegisterWithFrame
[in] Wenn TRUE
, wird der neue Bereich beim Andock-Manager des übergeordneten Bereichs des alten Bereichs registriert. Der neue Bereich wird am Index des alten Bereichs in der Liste der Bereiche eingefügt, die vom Andock-Manager verwaltet werden.
TRUE
, wenn der Ersatz erfolgreich ist; andernfalls FALSE
.
Wenn ein Bereich deserialisiert wird, ruft das Framework diese Methode auf, um die Standardbereichstrennlinie wiederherzustellen.
void RestoreDefaultPaneDivider();
Die wiederhergestellte Standardbereichstrennlinie ersetzt, sofern vorhanden, die aktuelle Standardbereichstrennlinie.
Schaltet den Andockbereich zwischen sichtbarem und automatischem Einblenden um.
virtual CMFCAutoHideBar* SetAutoHideMode(
BOOL bMode,
DWORD dwAlignment,
CMFCAutoHideBar* pCurrAutoHideBar = NULL,
BOOL bUseTimer = TRUE);
bMode
[in] TRUE
, um den Automatischen Modus zu aktivieren; FALSE
, um den regulären Andockmodus zu aktivieren.
dwAlignment
[in] Gibt die Ausrichtung des zu erstellenden Autohidebereichs an.
pCurrAutoHideBar
[in, out] Ein Zeiger auf die aktuelle Autohide-Symbolleiste. Kann NULL
werden.
bUseTimer
[in] Gibt an, ob der Autohide-Effekt verwendet werden soll, wenn der Benutzer den Bereich in den Automatischen Modus wechselt oder den Bereich sofort ausblenden soll.
Die Autohide-Symbolleiste, die als Ergebnis des Wechsels zum Autohide-Modus oder NULL
erstellt wurde.
Das Framework ruft diese Methode auf, wenn ein Benutzer auf die Pin-Taste klickt, um den andockbaren Bereich in den Autohidemodus oder in den regulären Andockmodus zu wechseln.
Rufen Sie diese Methode auf, um einen andockbaren Bereich programmgesteuert in den Autohidemodus zu wechseln. Der Bereich muss an das Hauptrahmenfenster angedockt werden ( CDockablePane::GetDefaultPaneDivider
muss einen gültigen Zeiger auf die CPaneDivider
zurückgeben).
Legt die Schaltfläche zum automatischen Ausblenden und die Symbolleiste für das automatische Ausblenden für den Bereich fest.
void SetAutoHideParents(
CMFCAutoHideBar* pToolBar,
CMFCAutoHideButton* pBtn);
pToolBar
[in] Zeigen Sie auf eine Symbolleiste zum automatischen Ausblenden.
pBtn
[in] Zeiger auf eine Schaltfläche zum automatischen Ausblenden.
Legt den Prozentsatz des Platzes fest, den ein Bereich in seinem Container belegt.
void SetLastPercentInPaneContainer(int n);
n
[in] Ein int
, der den Prozentsatz des Platzes angibt, den der Bereich in seinem Container belegt.
Das Framework passt den Bereich an, um den neuen Wert zu verwenden, wenn das Layout neu berechnet wird.
Legt die wiederhergestellte Standardbereichstrennlinie fest.
void SetRestoredDefaultPaneDivider(HWND hRestoredSlider);
hRestoredSlider
[in] Ein Ziehpunkt für eine Bereichstrennlinie (Schieberegler).
Eine wiederhergestellte Standardbereichstrennlinie wird abgerufen, wenn ein Bereich deserialisiert wird. Weitere Informationen finden Sie unter CDockablePane::RestoreDefaultPaneDivider
.
Legt die Laufzeitklasseninformationen für ein Registerkartenfenster fest, das erstellt wird, wenn zwei Bereiche miteinander andocken.
void SetTabbedPaneRTC(CRuntimeClass* pRTC);
pRTC
[in] Die Laufzeitklasseninformationen für den Registerkartenbereich.
Rufen Sie diese Methode auf, um die Laufzeitklasseninformationen für dynamisch erstellte Registerkartenbereiche festzulegen. Dies kann auftreten, wenn ein Benutzer einen Bereich in die Beschriftung eines anderen Bereichs zieht oder wenn Sie die CDockablePane::AttachToTabWnd
-Methode aufrufen, um programmgesteuert einen Registerkartenbereich aus zwei andockbaren Bereichen zu erstellen.
Die Standardlaufzeitklasse wird gemäß dem dwTabbedStyle
Parameter von CDockablePane::Create
und CDockablePane::CreateEx
festgelegt. Um die neuen Registerkartenbereiche anzupassen, leiten Sie Ihren Kurs von einer der folgenden Klassen ab:
Rufen Sie dann diese Methode mit dem Zeiger auf die Laufzeitklasseninformationen auf.
Blendet einen Bereich ein oder aus.
virtual void ShowPane(
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
bShow
[in] TRUE
, um den Bereich anzuzeigen; FALSE
, um den Bereich auszublenden.
bDelay
[in] TRUE
, die Anpassung des Andocklayouts zu verzögern; FALSE
, um das Andocklayout sofort anzupassen.
bActivate
[in] TRUE
, um den Bereich zu aktivieren, wenn er angezeigt wird; andernfalls FALSE
.
Rufen Sie diese Methode anstelle der CWnd::ShowWindow
auf, wenn Sie andockbare Bereiche ein- oder ausblenden.
Animates a pane that is in autohide mode.
virtual void Slide(
BOOL bSlideOut,
BOOL bUseTimer = TRUE);
bSlideOut
[in] TRUE
, um den Bereich anzuzeigen; FALSE
, um den Bereich auszublenden.
bUseTimer
[in] TRUE
, um den Bereich mit dem Autohideeffekt ein- oder auszublenden; FALSE
, um den Bereich sofort ein- oder auszublenden.
Das Framework ruft diese Methode auf, um einen Bereich zu animieren, der sich im Automatischen Modus befindet.
Diese Methode verwendet den CDockablePane::m_nSlideDefaultTimeOut
Wert, um das Timeout für den Folieneffekt zu bestimmen. Der Standardwert für das Timeout ist 1. Wenn Sie den Autohide-Algorithmus anpassen, ändern Sie dieses Element, um das Timeout zu ändern.
Schaltet den Bereich zwischen dem immer sichtbaren und automatischen Ausblendenmodus um.
virtual void ToggleAutoHide();
Mit dieser Methode wird der Modus für das automatische Ausblenden für den Bereich durch Aufrufen von CDockablePane::SetAutoHideMode
umgeschaltet.
Hebt einen Bereich entweder vom Hauptrahmenfenster oder einem Miniframefenstercontainer ab.
virtual void UndockPane(BOOL bDelay = FALSE);
bDelay
[in] TRUE
, die Berechnung des Andocklayouts zu verzögern; FALSE
, das Andocklayout sofort neu zu berechnen.
Rufen Sie diese Methode auf, um einen Bereich aus dem Hauptframefenster oder aus einem Container mit mehreren Miniframefenstern (ein Bereich, der in einem einzelnen Miniframefenster mit anderen Bereichen unverankert ist) rückgängig zu machen.
Sie müssen einen Bereich rückgängig machen, bevor Sie einen externen Vorgang ausführen, der nicht vom CDockingManager
ausgeführt wird. Beispielsweise müssen Sie einen Bereich rückgängig machen, um ihn programmgesteuert von einer Position an eine andere zu verschieben.
Das Framework hebt Bereiche automatisch ab, bevor sie zerstört werden.