CDockablePane
-Klasse
Implementiert einen Bereich, der entweder in eine Docksite angedockt oder in einer Seite im Registerformat 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 |
Wird intern verwendet. Um einen Bereich anzudocken, verwenden CPane::DockPane oder CDockablePane::DockToWindow . |
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 |
Wird intern verwendet. |
CDockablePane::GetAutoHideToolBar |
Wird 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 |
Wird 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 |
Wird 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 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 |
Wird 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 |
Wird 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 |
Wird intern verwendet. |
CDockablePane::SetLastPercentInPaneContainer |
Legt den Prozentsatz des Platzes fest, den ein Bereich innerhalb seines Containers belegt. |
CDockablePane::SetResizeMode |
Wird 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. (Außerkraftsetzungen CPane::ToggleAutoHide .) |
CDockablePane::UndockPane |
Hebt einen Bereich entweder vom Hauptrahmenfenster oder einem Miniframefenstercontainer ab. |
CDockablePane::UnSetAutoHideMode |
Wird intern verwendet. Um den Modus für das automatische Ausblenden festzulegen, verwenden Sie CDockablePane::SetAutoHideMode |
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 AFX_HTCLOSE Schaltflächen und AFX_HTMAXBUTTON Schaltflächen 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 Hauptframefenster verarbeiten. Richten Sie schließlich das Bereichsobjekt durch Aufrufen CBasePane::EnableDocking
, oder CBasePane::DockPane
CDockablePane::AttachToTabWnd
.
Die folgenden Tipps gelten für CDockablePane
Objekte:
Wenn Sie zwei nicht tabstoppfähige Bereiche aufrufen
CDockablePane::AttachToTabWnd
, 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, von
CDockablePane::AttachToTabWnd
dem erstellt wird, wird durch dasCDockablePane
Objekt impTabControlBarAttachTo
Parameter bestimmt. Sie können aufrufenCDockablePane::SetTabbedPaneRTC
, um die Art des Registerkartenbereichs festzulegen, den derCDockablePane
Benutzer erstellt. Der Standardtyp wird durch dendwTabbedStyle
CDockablePane::Create
Zeitpunkt der erstellungCDockablePane
bestimmt. WenndwTabbedStyle
derAFX_CBRS_OUTLOOK_TABS
Standardtyp "Klasse" istCMFCOutlookBar
; wenndwTabbedStyle
der Standardtyp "Klasse" istAFX_CBRS_REGULAR_TABS
CTabbedPane
.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 beim AufrufenCDockablePane::ShowPane
im Modus für das automatische Ausblenden verhalten. Wenn diese Membervariable aufTRUE
"Andockbare Bereiche" festgelegt ist und deren Schaltflächen für das automatische Ausblenden ausgeblendet werden. 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 das Konfigurieren eines CDockablePane
Objekts mithilfe verschiedener Methoden in der CDockablePane
Klasse veranschaulicht. 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);
Header: 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
zum Aktivieren des Registerkartenbereichs nach dem Anfügenvorgang; 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 ist 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 ein regulärer Andockbereich
pTabControlBarAttachTo
ist oder ob er vonCBaseTabbedPane
.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
. Die Formatvorlage des neuen Registerkartenbereichs hängt vom Element abm_pTabbedControlBarRTC
. Standardmäßig ist dieser Member auf die Laufzeitklasse vonCTabbedPane
. Wenn Sie dieAFX_CBRS_OUTLOOK_TABS
Formatvorlage alsdwTabbedStyle
Parameter an dieCDockablePane::Create
Methode übergeben, wird das Laufzeitklassenobjekt auf die Laufzeitklasse vonCMFCOutlookBar
. 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 Zeiger (
pTabControlBarAttachTo
wenn der Bereich in einem Mehr-Miniframe-Fenster angedockt oder unverankert ist) durch einen Zeiger auf den neuen Registerkartenbettbereich.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 abgeleitet
CBaseTabbedPane
wird, werden alle Registerkarten verschobenpTabControlBarAttachTo
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 diesen dockMethod
wert fest.DM_SHOW
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 zurück TRUE
, 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 zurück FALSE
:
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 zurück TRUE
. Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um das Andocken ohne Aufruf CBasePane::EnableDocking
zu aktivieren oder zu deaktivieren.
Erstellt und initialisiert ein CDockablePane
-Objekt.
CDockablePane();
Nachdem Sie ein dockbares Bereichsobjekt erstellt haben, rufen Sie es auf CDockablePane::Create
, oder CDockablePane::CreateEx
erstellen Sie es.
Konvertiert einen oder mehrere andockbare Bereiche in MDI-Registerkartendokumente.
virtual void ConvertToTabbedDocument(BOOL bActiveTabOnly = TRUE);
bActiveTabOnly
[in] Wenn Sie ein CTabbedPane
, geben Sie TRUE
an, dass nur die aktive Registerkarte konvertiert werden soll. Geben Sie FALSE
an, dass alle Registerkarten im Bereich konvertiert werden sollen.
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 zurück TRUE
, 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 das Ausblenden des Bereichs auf CDockablePane::Slide
.
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 Stoppbedingung 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 zurück TRUE
, 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 des pOrgBar
aktuellen Bereichs, 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
.
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 die dwStyle
Fensterformatvorlage über die CBRS_FLOAT_MULTI
Kennzeichnung verfügt, kann das Miniframefenster mit anderen Bereichen im Miniframefenster schweben. Andockbereiche können standardmäßig nur einzeln schweben.
Wenn der dwTabbedStyle
Parameter das AFX_CBRS_OUTLOOK_TABS
Kennzeichen 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
die Methode das CBRS_ALIGN_LEFT
Trennzeichen enthält, CBRS_ALIGN_RIGHT
erstellt diese Methode eine vertikale (CPaneDivider::SS_VERT
) Trennlinie. 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 Dividiererstellung 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
.
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 die dwStyle
Fensterformatvorlage über die CBRS_FLOAT_MULTI
Kennzeichnung verfügt, kann das Miniframefenster mit anderen Bereichen im Miniframefenster schweben. Andockbereiche können standardmäßig nur einzeln schweben.
Wenn der dwTabbedStyle
Parameter das AFX_CBRS_OUTLOOK_TABS
Kennzeichen 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 entsprechend den im m_pTabbedControlBarRTC
Element 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 TRUE
dieser Wert, ob der Bereich erfolgreich angedockt wurde; andernfalls enthält FALSE
er .
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 zurück NULL
.
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 eine von CBRS_ALIGN_LEFT
, , , CBRS_ALIGN_RIGHT
oder CBRS_ALIGN_BOTTOM
CBRS_ALIGN_ANY
CBRS_ALIGN_TOP
. (Definiert in afxres.h
.)
lpRect
[in] Gibt das Andockrechteck für den Bereich an.
TRUE
wenn der Bereich erfolgreich angedockt wurde; andernfalls . FALSE
Rufen Sie diese Methode auf, um einen Bereich an einen anderen Bereich mit der durch dwAlignment
die Angegebenen Ausrichtung 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 "Alle automatisch einblenden" 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 gewechselt.
Rufen Sie diese Methode auf, um bEnable
dieses Feature für einen bestimmten Bereich zu FALSE
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
Wert, der den Automatisch-Ausblenden-Folienmodus für den Bereich angibt. Der Rückgabewert kann entweder AFX_AHSM_MOVE
oder AFX_AHSM_STRETCH
, aber die Implementierung verwendet AFX_AHSM_MOVE
nur .
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
der andockbare Bereich nicht angedockt ist oder ob er unverankert ist.
Weitere Informationen zu Bereichsteilern finden Sie unter CPaneDivider
"Klasse".
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 vom Typ 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 aus dem Clientbereich des übergeordneten Frames verschieben kann, bevor das Andocken erfolgt. Die Länge der Verzögerung wird in Millisekunden gemessen und vom CDockingManager::m_nTimeOutBeforeToolBarDock
Datenmemm gesteuert. Der Standardwert von CDockingManager::m_nTimeOutBeforeToolBarDock
lautet 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
Dockingmodus verwendet, zeigt das Framework intelligente Docking-Marker 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
Klasse).
int GetLastPercentInPaneContainer() const;
Ein int
Wert, 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
Registerkarten abgeleitet werden und über Registerkarten verfügen. 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
wennpoint
sich 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
wennpoint
sich auf der Schaltfläche "Schließen" befindet.HTMAXBUTTON
wennpoint
sich 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 in den Automatischen Modus gewechselt werden können; andernfalls . FALSE
Ein Benutzer aktiviert den Automatischen Modus, indem er auf die Docking-Pin-Taste klickt, während die STRG-TASTE gedrückt wird.
Rufen Sie die CDockablePane::EnableAutohideAll
Methode auf, um dieses Verhalten zu aktivieren oder zu deaktivieren.
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 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 Nicht-ZeigerNULL
zurückgibt, wird der Bereich am Hauptrahmenfenster angedockt.
Bestimmt das Verhalten eines Bereichs, der sich im Autohide-Modus befindet, wenn er durch Aufrufen CDockablePane::ShowPane
angezeigt (oder ausgeblendet) wird.
virtual BOOL IsHideInAutoHideMode() const;
TRUE
wenn der andockbare Bereich ausgeblendet werden soll, wenn sich der Automatische Einblendenmodus befindet; andernfalls . FALSE
Wenn sich ein andockbarer Bereich im Automatischen Modus befindet, verhält es sich anders, wenn Sie den ShowPane
Bereich ausblenden oder anzeigen. Dieses Verhalten wird vom statischen Element CDockablePane::m_bHideInAutoHideMode
gesteuert. Wenn dieses Element ist, wird TRUE
der andockbare Bereich und die zugehörige Autohidesymbolleiste oder autohide-Schaltfläche ausgeblendet oder angezeigt, wenn Sie aufrufen ShowPane
. 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 zurück FALSE
. Beachten Sie, dass ein FALSE
Wert zu einem Fehler ASSERT
führt.CPane::DockPane
Verwenden Sie CDockingManager::AddPane
stattdessen, 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 anstelle des Aufrufens CWnd::IsWindowVisible
oder Testens für die WS_VISIBLE
Formatvorlage verwenden. Der zurückgegebene Sichtbarkeitsstatus 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 Automatischen Modus befindet und IsHideInAutoHideMode
der Sichtbarkeitszustand immer FALSE
zurückgegeben FALSE
wird.
Wenn sich der andockbare Bereich im Autohide-Modus befindet und IsHideInAutoHideMode
der Sichtbarkeitszustand zurückgegeben TRUE
wird, hängt vom Sichtbarkeitsstatus der zugehörigen Autohide-Symbolleiste ab.
Wenn sich der andockbare Bereich nicht im Autohidemodus befindet, wird der Sichtbarkeitszustand durch die CBasePane::IsVisible
Methode bestimmt.
Nur zur internen Verwendung. Ausführliche Informationen 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
"Andockbare Bereiche" festlegen, werden beim Aufrufen CDockablePane::ShowPane
ausgeblendet oder mit den zugehörigen automatischen Symbolleisten und Schaltflächen angezeigt.
Wenn Sie dieses Element auf FALSE
" festlegen , werden andockbare Bereiche aktiviert oder deaktiviert, wenn Sie anrufen CDockablePane::ShowPane
.
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.
Ausführliche Informationen 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 hat diese Methode keine Auswirkungen.
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 CPane::DockPane
unter
TRUE
wenn der Bereich eingefloben werden kann; 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 AFX_HTCLOSE
Schaltflächen und AFX_HTMAXBUTTON
Schaltflächen 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
den Bereich 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
der neue Bereich beim Andock-Manager des übergeordneten Bereichs des alten Bereichs registriert ist. 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
zum Aktivieren des Autohidemodus; 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
sein.
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 erstellt wurde, oder NULL
.
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 den CPaneDivider
).
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
Wert, 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
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 Docking-Layouts 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 des CWnd::ShowWindow
Ein- oder Ausblendens angedockbarer Bereiche auf.
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 Autohide-Effekt 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 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 Docking-Layouts zu verzögern; FALSE
um 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 von der CDockingManager
. 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.