CMDIFrameWndEx
-Klasse
Erweitert die Funktionalität eines CMDIFrameWnd
Windows Multiple Document Interface (MDI)-Framefensters.
Syntax
class CMDIFrameWndEx : public CMDIFrameWnd
Member
Öffentliche Methoden
Name | Beschreibung |
---|---|
CMDIFrameWndEx::ActiveItemRecalcLayout |
Berechnet das Layout des aktiven Elements neu. |
CMDIFrameWndEx::AddDockSite |
Diese Methode wird nicht verwendet. |
CMDIFrameWndEx::AddPane |
Registriert einen Bereich mit dem Andock-Manager. |
CMDIFrameWndEx::AdjustClientArea |
Reduziert den Clientbereich, um einen Rahmen zu ermöglichen. |
CMDIFrameWndEx::AdjustDockingLayout |
Berechnet das Layout aller angedockten Bereiche neu. |
CMDIFrameWndEx::AreMDITabs |
Bestimmt, ob das Feature "MDI-Registerkarten" oder das Feature "MDI-Registerkartengruppen" aktiviert ist. |
CMDIFrameWndEx::CanConvertControlBarToMDIChild |
Wird vom Framework aufgerufen, um zu bestimmen, ob das Framefenster Andockbereiche in Dokumente im Registerkartenformat konvertieren kann. |
CMDIFrameWndEx::ControlBarToTabbedDocument |
Konvertiert den angegebenen Andockbereich in ein Dokument im Registerkartenformat. |
CMDIFrameWndEx::CreateDocumentWindow |
Erstellt ein untergeordnetes Dokumentfenster. |
CMDIFrameWndEx::CreateNewWindow |
Vom Framework aufgerufen, um ein neues Fenster zu erstellen. |
CMDIFrameWndEx::CreateObject |
Wird vom Framework verwendet, um eine dynamische Instanz dieses Klassentyps zu erstellen. |
CMDIFrameWndEx::DockPane |
Dockt den angegebenen Bereich an das Rahmenfenster an. |
CMDIFrameWndEx::DockPaneLeftOf |
Dockt einen Bereich auf der linken Seite eines anderen Bereichs an. |
CMDIFrameWndEx::EnableAutoHidePanes |
Aktiviert den Modus "Automatisches Ausblenden" für Bereiche, wenn sie an den angegebenen Seiten des Hauptrahmenfensters angedockt sind. |
CMDIFrameWndEx::EnableDocking |
Aktiviert das Andocken der Bereiche, die zum MDI-Rahmenfenster gehören. |
CMDIFrameWndEx::EnableFullScreenMainMenu |
Blendet das Hauptmenü im Vollbildmodus ein oder aus. |
CMDIFrameWndEx::EnableFullScreenMode |
Aktiviert den Vollbildmodus für das Framefenster. |
CMDIFrameWndEx::EnableLoadDockState |
Aktiviert oder deaktiviert das Laden des Andockzustands. |
CMDIFrameWndEx::EnableMDITabbedGroups |
Aktiviert oder deaktiviert das Feature "MDI-Registerkartengruppen". |
CMDIFrameWndEx::EnableMDITabs |
Aktiviert oder deaktiviert das Feature "MDI-Registerkarten". Wenn diese Option aktiviert ist, zeigt das Rahmenfenster für jedes untergeordnete MDI-Fenster eine Registerkarte an. |
CMDIFrameWndEx::EnableMDITabsLastActiveActivation |
Gibt an, ob die letzte aktive Registerkarte aktiviert werden soll, wenn der Benutzer die aktuelle Registerkarte schließt. |
CMDIFrameWndEx::EnablePaneMenu |
Aktiviert oder deaktiviert die automatische Erstellung und Verwaltung des Popupbereichmenüs, das eine Liste von Anwendungsbereichen anzeigt. |
CMDIFrameWndEx::EnableWindowsDialog |
Fügt ein Menüelement ein, dessen Befehls-ID ein CMFCWindowsManagerDialog Dialogfeld aufruft. |
CMDIFrameWndEx::GetActivePopup |
Gibt einen Zeiger auf das aktuell angezeigte Popupmenü zurück. |
CMDIFrameWndEx::GetPane |
Gibt einen Zeiger auf den Bereich zurück, der die angegebene Steuerelement-ID aufweist. |
CMDIFrameWndEx::GetDefaultResId |
Gibt die ID der freigegebenen Ressourcen des MDI-Framefensters zurück. |
CMDIFrameWndEx::GetMDITabGroups |
Gibt eine Liste der MDI-Registerkartenfenster zurück. |
CMDIFrameWndEx::GetMDITabs |
Gibt einen Verweis auf das unterstrichene Registerkartenfenster zurück. |
CMDIFrameWndEx::GetMDITabsContextMenuAllowedItems |
Gibt eine Kombination von Flags zurück, die bestimmt, welche Kontextmenüelemente gültig sind, wenn das Feature "MDI-Registerkartengruppen" aktiviert ist. |
CMDIFrameWndEx::GetMenuBar |
Gibt einen Zeiger auf ein Menüleistenobjekt zurück, das an das Rahmenfenster angefügt ist. |
CMDIFrameWndEx::GetRibbonBar |
Ruft das Menübandleisten-Steuerelement für den Frame ab. |
CMDIFrameWndEx::GetTearOffBars |
Gibt eine Liste von CPane abgeleiteten Objekten zurück, die sich in einem Abbruchzustand befinden. |
CMDIFrameWndEx::GetThisClass |
Vom Framework aufgerufen, um einen Zeiger auf das CRuntimeClass Objekt abzurufen, das diesem Klassentyp zugeordnet ist. |
CMDIFrameWndEx::GetToolbarButtonToolTipText |
Wird vom Framework aufgerufen, wenn die Anwendung die QuickInfo für eine Symbolleistenschaltfläche anzeigt. |
CMDIFrameWndEx::InsertPane |
Registriert den angegebenen Bereich mit dem Docking-Manager. |
CMDIFrameWndEx::IsFullScreen |
Bestimmt, ob sich das Framefenster im Vollbildmodus befindet. |
CMDIFrameWndEx::IsMDITabbedGroup |
Bestimmt, ob das Feature "MDI-Registerkartengruppen" aktiviert ist. |
CMDIFrameWndEx::IsMemberOfMDITabGroup |
Bestimmt, ob sich das angegebene Fenster im Registerkartenformat in der Liste der Fenster befindet, die sich in MDI-Registerkartengruppen befinden. |
CMDIFrameWndEx::IsMenuBarAvailable |
Bestimmt, ob das Rahmenfenster über eine Menüleiste verfügt. |
CMDIFrameWndEx::IsPointNearDockSite |
Bestimmt, ob sich ein angegebener Punkt in der Nähe des Dockstandorts befindet. |
CMDIFrameWndEx::IsPrintPreview |
Bestimmt, ob sich das Framefenster im Druckvorschaumodus befindet. |
CMDIFrameWndEx::LoadFrame |
Erstellt ein Framefenster aus Ressourceninformationen. (Überschreibt CMDIFrameWnd::LoadFrame .) |
CMDIFrameWndEx::LoadMDIState |
Lädt das angegebene Layout von MDI-Registerkartengruppen und die Liste der zuvor geöffneten Dokumente. |
CMDIFrameWndEx::MDITabMoveToNextGroup |
Verschiebt die aktive Registerkarte aus dem derzeit aktiven Registerkartenfenster in die nächste oder vorherige Registerkartengruppe. |
CMDIFrameWndEx::MDITabNewGroup |
Erstellt eine neue Registerkartengruppe mit einem einzelnen Fenster. |
CMDIFrameWndEx::NegotiateBorderSpace |
Ausgehandelt den Rahmenbereich in einem Rahmenfenster während der DIREKTEN OLE-Aktivierung. |
CMDIFrameWndEx::OnCloseDockingPane |
Wird vom Framework aufgerufen, wenn der Benutzer auf die Schaltfläche "Schließen " in einem andockbaren Bereich klickt. |
CMDIFrameWndEx::OnCloseMiniFrame |
Wird vom Framework aufgerufen, wenn der Benutzer auf die Schaltfläche "Schließen " in einem unverankerten Miniframefenster klickt. |
CMDIFrameWndEx::OnClosePopupMenu |
Wird vom Framework aufgerufen, wenn ein aktives Popupmenü eine WM_DESTROY Nachricht verarbeitet. |
CMDIFrameWndEx::OnCmdMsg |
Wird vom Framework aufgerufen, um Befehlsnachrichten weiterzuleiten und zu verteilen und Befehlsbenutzeroberflächenobjekte zu aktualisieren. |
CMDIFrameWndEx::OnDrawMenuImage |
Wird vom Framework aufgerufen, wenn das einem Menüelement zugeordnete Bild gezeichnet wird. |
CMDIFrameWndEx::OnDrawMenuLogo |
Wird vom Framework aufgerufen, wenn eine CMFCPopupMenu WM_PAINT Nachricht verarbeitet wird. |
CMDIFrameWndEx::OnEraseMDIClientBackground |
Wird vom Framework aufgerufen, wenn das MDI-Framefenster eine WM_ERASEBKGND Nachricht verarbeitet. |
CMDIFrameWndEx::OnMenuButtonToolHitTest |
Wird vom Framework aufgerufen, wenn ein CMFCToolBarButton Objekt eine WM_NCHITTEST Nachricht verarbeitet. |
CMDIFrameWndEx::OnMoveMiniFrame |
Vom Framework aufgerufen, um ein Miniframefenster zu verschieben. |
CMDIFrameWndEx::OnSetPreviewMode |
Legt den Hauptrahmenfenster des Druckvorschaumodus der Anwendung fest. (Überschreibt CFrameWnd::OnSetPreviewMode .) |
CMDIFrameWndEx::OnShowCustomizePane |
Wird vom Framework aufgerufen, wenn ein Quick Customize-Bereich aktiviert wird. |
CMDIFrameWndEx::OnShowMDITabContextMenu |
Wird vom Framework aufgerufen, wenn ein Kontextmenü auf einer der Registerkarten angezeigt werden soll. (Nur für MDI-Registerkartengruppen gültig.) |
CMDIFrameWndEx::OnShowPanes |
Vom Framework aufgerufen, um Bereiche ein- oder auszublenden. |
CMDIFrameWndEx::OnShowPopupMenu |
Wird vom Framework aufgerufen, wenn ein Popupmenü aktiviert wird. |
CMDIFrameWndEx::OnSizeMDIClient |
Wird vom Framework aufgerufen, wenn sich die Größe des Client-MDI-Fensters ändert. |
CMDIFrameWndEx::OnTearOffMenu |
Wird vom Framework aufgerufen, wenn ein Menü mit abtrennbarer Leiste aktiviert wird. |
CMDIFrameWndEx::OnUpdateFrameMenu |
Wird vom Framework aufgerufen, um das Framemenü zu aktualisieren. (Überschreibt CMDIFrameWnd::OnUpdateFrameMenu .) |
CMDIFrameWndEx::PaneFromPoint |
Gibt den Andockbereich zurück, der den angegebenen Punkt enthält. |
CMDIFrameWndEx::PreTranslateMessage |
Wird von der Klasse CWinApp verwendet, um Fensternachrichten zu übersetzen, bevor sie an die TranslateMessage Und DispatchMessage Windows-Funktionen verteilt werden. (Überschreibt CMDIFrameWnd::PreTranslateMessage .) |
CMDIFrameWndEx::RecalcLayout |
Wird vom Framework aufgerufen, um das Layout des Framefensters neu zu berechnen. (Überschreibt CFrameWnd::RecalcLayout .) |
CMDIFrameWndEx::RemovePaneFromDockManager |
Hebt die Registrierung eines Bereichs auf und entfernt ihn aus dem Docking-Manager. |
CMDIFrameWndEx::SaveMDIState |
Speichert das aktuelle Layout von MDI-Registerkartengruppen und die Liste der zuvor geöffneten Dokumente. |
CMDIFrameWndEx::SetPrintPreviewFrame |
Legt das Fenster für den Seitenvorschaurahmen fest. |
CMDIFrameWndEx::SetupToolbarMenu |
Ändert ein Symbolleistenobjekt durch die Suche nach Dummy-Elementen und durch das anschließende Ersetzen dieser Dummy-Elemente durch die angegebenen benutzerdefinierten Elemente. |
CMDIFrameWndEx::ShowFullScreen |
Schaltet den Hauptframe vom normalen Modus in den Vollbildmodus um. |
CMDIFrameWndEx::ShowPane |
Blendet den angegebenen Bereich ein oder aus. |
CMDIFrameWndEx::ShowWindowsDialog |
Erstellt ein CMFCWindowsManagerDialog Feld und öffnet es. |
CMDIFrameWndEx::TabbedDocumentToControlBar |
Konvertiert das angegebene Dokument im Registerkartenformat in einen Andockbereich. |
CMDIFrameWndEx::UpdateCaption |
Vom Framework aufgerufen, um die Fensterrahmenbeschriftung zu aktualisieren. |
CMDIFrameWndEx::UpdateMDITabbedBarsIcons |
Legt das Symbol für jeden MDI-Registerkartenbereich fest. |
CMDIFrameWndEx::WinHelp |
Wird vom Framework aufgerufen, um die WinHelp-Anwendung oder die Kontexthilfe zu initiieren. (Überschreibt CWnd::WinHelp .) |
Datenmember
Name | Beschreibung |
---|---|
CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild |
Bestimmt, ob Andockbereiche in untergeordnete MDI-Fenster konvertiert werden können. |
CMDIFrameWndEx::m_bDisableSetRedraw |
Aktiviert oder deaktiviert die Neuzeichnenoptimierung für untergeordnete MDI-Fenster. |
Hinweise
Um die Vorteile erweiterter Anpassungsfeatures in Ihrer MDI-Anwendung zu nutzen, leiten Sie die MDI-Framefensterklasse der Anwendung von CMDIFrameWndEx
anstelle von CMDIFrameWnd
.
Beispiel
Das folgende Beispiel leitet eine Klasse von CMDIFrameWndEx
. Dieser Codeausschnitt stammt aus dem DrawClient-Beispiel: MFC Ribbon-based OLE Object Drawing Application.
class CMainFrame : public CMDIFrameWndEx
{
DECLARE_DYNAMIC(CMainFrame)
public:
struct XStyle
{
COLORREF clrFill;
COLORREF clrLine;
};
public:
CMainFrame();
// Attributes
public:
CMFCRibbonBar *GetRibbonBar() { return &m_wndRibbonBar; }
// Operations
public:
void UpdateUI(CDrawView *pCurrView);
void UpdateContextTab(CDrawView *pCurrView);
void UpdateContextTabFromObject(CDrawObjList &list);
COLORREF GetColorFromColorButton(int nButtonID);
int GetWeightFromLineWeight(int nButtonID);
BOOL GetStyleFromStyles(XStyle &style);
void SetRibbonContextCategory(UINT uiCategoryID);
void ActivateRibbonContextCategory(UINT uiCategoryID);
// Implementation
public:
virtual ~CMainFrame();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext &dc) const;
#endif
protected:
// control bar embedded members
CMFCRibbonStatusBar m_wndStatusBar;
CMFCRibbonBar m_wndRibbonBar;
CMFCRibbonApplicationButton m_MainButton;
// panel images
CMFCToolBarImages m_PanelImages;
// Document colors for demo:
CList<COLORREF, COLORREF> m_lstMainColors;
CList<COLORREF, COLORREF> m_lstAdditionalColors;
CList<COLORREF, COLORREF> m_lstStandardColors;
// Generated message map functions
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnAppLook(UINT id);
afx_msg void OnUpdateAppLook(CCmdUI *pCmdUI);
afx_msg void OnWindowManager();
afx_msg void OnMdiMoveToNextGroup();
afx_msg void OnMdiMoveToPrevGroup();
afx_msg void OnMdiNewHorzTabGroup();
afx_msg void OnMdiNewVertGroup();
afx_msg void OnMdiCancel();
afx_msg LRESULT OnRibbonCustomize(WPARAM wp, LPARAM lp);
afx_msg LRESULT OnHighlightRibbonListItem(WPARAM wp, LPARAM lp);
afx_msg void OnToolsOptions();
afx_msg void OnDummy();
afx_msg void OnSysColorChange();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
virtual BOOL OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop);
virtual BOOL OnShowPopupMenu(CMFCPopupMenu *pMenuPopup);
void ShowOptions(int nPage);
void CreateDocumentColors();
private:
BOOL CreateRibbonBar();
BOOL CreateStatusBar();
void InitMainButton();
void InitHomeCategory();
void InitViewCategory();
void InitTabButtons();
void AddContextTab_Format();
void AdjustObjectSubmenu(CMFCPopupMenu *pMenuPopup);
void UpdateStatusBarCountPane(int nID, CString strText, int nCount);
UINT m_nAppLook;
};
Vererbungshierarchie
Anforderungen
Header: afxMDIFrameWndEx.h
CMDIFrameWndEx::ActiveItemRecalcLayout
Berechnet das Layout des aktiven Elements neu.
void ActiveItemRecalcLayout();
CMDIFrameWndEx::AddPane
Registriert einen Bereich mit dem Andock-Manager.
BOOL AddPane(
CBasePane* pControlBar,
BOOL bTail=TRUE);
Parameter
pControlBar
[in] Zeigen Sie auf den Bereich, der registriert werden soll.
bTail
[in] Gibt an, ob dieser Bereich am Ende der Liste hinzugefügt werden soll.
Rückgabewert
Gibt einen Wert ungleich Null zurück, wenn der Bereich erfolgreich registriert wurde. Gibt 0 zurück, wenn der Bereich bereits beim Docking-Manager registriert ist.
Hinweise
Jeder Bereich muss bei der CDockingManager
Klasse registriert werden, bevor er an dem Andocklayout teilnehmen kann. Verwenden Sie diese Methode, um den Docking-Manager zu benachrichtigen, dass Sie einen bestimmten Bereich andocken möchten. Nachdem dieser Bereich registriert wurde, richtet der Docking-Manager ihn basierend auf seiner Ausrichtungseinstellung und -position in der Liste der Bereiche aus, die vom Andock-Manager verwaltet werden.
CMDIFrameWndEx::AdjustClientArea
Reduziert den Clientbereich, um einen Rahmen zu ermöglichen.
virtual void AdjustClientArea();
CMDIFrameWndEx::AdjustDockingLayout
Berechnet das Layout aller angedockten Bereiche neu.
virtual void AdjustDockingLayout(HDWP hdwp=NULL);
Parameter
hdwp
[in] Identifiziert die Struktur mit mehreren Fenstern. Sie können diesen Wert durch Aufrufen abrufen BeginDeferWindowPos
.
Hinweise
Rufen Sie diese Memberfunktion auf, um das Layout aller Bereiche neu zu berechnen, die an das Framefenster angedockt sind.
CMDIFrameWndEx::AreMDITabs
Bestimmt, ob das Feature "MDI-Registerkarten" oder das Feature "MDI-Registerkartengruppen" aktiviert ist.
BOOL AreMDITabs(int* pnMDITabsType=NULL) const;
Parameter
pnMDITabsType
[out] Ein Zeiger auf eine ganzzahlige Variable, die angibt, welche Features aktiviert sind:
- 0: Alle Features sind deaktiviert.
- 1: MDI-Registerkarten sind aktiviert.
- 2: MDI-Registerkartengruppen sind aktiviert.
Rückgabewert
Gibt zurück TRUE
, wenn MDI-Registerkarten oder MDI-Registerkartengruppen aktiviert sind.
Gibt zurück FALSE
, wenn keine der oben genannten Features aktiviert ist.
Hinweise
Verwenden Sie diese Funktion, um zu bestimmen, ob MDI-Registerkarten oder MDI-Registerkartengruppen für das Rahmenfenster aktiviert sind. Wird verwendet CMDIFrameWndEx::EnableMDITabs
, um das Feature für MDI-Registerkarten zu aktivieren oder zu deaktivieren.
Wird verwendet CMDIFrameWndEx::EnableMDITabbedGroups
, um das Feature "MDI-Registerkartengruppen" zu aktivieren oder zu deaktivieren.
CMDIFrameWndEx::CanConvertControlBarToMDIChild
Vom Framework aufgerufen, um zu bestimmen, ob das Framefenster Andockbereiche in Dokumente mit Registerkarten konvertieren kann
virtual BOOL CanConvertControlBarToMDIChild();
Rückgabewert
Gibt zurück TRUE
, wenn das Framefenster Andockbereiche in Dokumente im Registerformat konvertieren kann; andernfalls wird zurückgegeben FALSE
.
Hinweise
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, und kehren Sie zurück TRUE
, um die Konvertierung von Andockbereichen in Dokumente mit Registerkarten zu aktivieren. Alternativ können Sie auf CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild
TRUE
.
CMDIFrameWndEx::ControlBarToTabbedDocument
Konvertiert den angegebenen Andockbereich in ein Dokument im Registerkartenformat.
virtual CMDIChildWndEx* ControlBarToTabbedDocument(CDockablePane* pBar);
Parameter
pBar
Ein Zeiger auf den Dockingbereich, der konvertiert werden soll.
Rückgabewert
Gibt einen Zeiger auf das neue untergeordnete MDI-Fenster zurück, das den Andockbereich enthält.
Hinweise
Mit dieser Methode wird ein Andockbereich in ein Dokument mit Registerkarten konvertiert. Wenn Sie diese Methode aufrufen, erstellt das Framework ein CMDIChildWndEx
Klassenobjekt , entfernt den Andockbereich aus dem Docking-Manager und fügt den Andockbereich zum neuen untergeordneten MDI-Fenster hinzu. Das untergeordnete MDI-Fenster ändert die Größe des Andockbereichs, um den gesamten Clientbereich abzudecken.
CMDIFrameWndEx::CreateDocumentWindow
Erstellt ein untergeordnetes Dokumentfenster.
virtual CMDIChildWndEx* CreateDocumentWindow(
LPCTSTR lpcszDocName,
CObject* pObj);
Parameter
lpcszDocName
[in] Eine Textzeichenfolge, die einen Dokumentbezeichner enthält. In der Regel ist es der vollständige Pfad einer Dokumentdatei.
pObj
[in] Ein Zeiger auf ein benutzerdefiniertes Objekt. Beispielsweise kann ein Entwickler eine anwendungsspezifische Datenstruktur erstellen, die das Dokument beschreibt und angibt, wie das Dokument beim Start initialisiert werden soll.
Rückgabewert
Ein Zeiger auf CMDIChildWndEx
.
Hinweise
Das Framework ruft diese Methode auf, wenn sie die Liste der Dokumente lädt, die zuvor in der Registrierung gespeichert wurden.
Überschreiben Sie diese Methode, um Dokumente zu erstellen, wenn sie aus der Registrierung geladen werden.
Beispiel
Das folgende Beispiel zeigt die CreateDocumentWindow
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
In diesem Beispiel könnte der Name eines "virtuellen Dokuments" (z. B. "Startseite") sein, g_strStartViewName
das nicht aus einer Datenträgerdatei geladen wird. Daher benötigen wir eine spezielle Verarbeitung, um diesen Fall zu verarbeiten.
CMainFrame::CMainFrame()
{
CMFCPopupMenu::SetForceShadow(TRUE);
m_bCanConvertControlBarToMDIChild = TRUE;
}
CMDIFrameWndEx::CreateNewWindow
Vom Framework aufgerufen, um ein neues Fenster zu erstellen.
virtual CMDIChildWndEx* CreateNewWindow(
LPCTSTR lpcszDocName,
CObject* pObj);
Parameter
lpcszDocName
[in] Der Dokumentname.
pObj
[in] Reserviert für zukünftige Verwendung.
Rückgabewert
Ein Zeiger auf das neue Fenster.
CMDIFrameWndEx::DockPane
Dockt den angegebenen Bereich an das Rahmenfenster an.
void DockPane(
CBasePane* pBar,
UINT nDockBarID=0,
LPCRECT lpRect=NULL);
Parameter
pBar
[in] Zeigen Sie auf den Bereich, der angedockt werden soll.
nDockBarID
[in] Gibt an, an welchen Seiten des Rahmenfensters angedockt werden soll.
lpRect
[in] Wird nicht verwendet.
Hinweise
Mit dieser Methode wird der angegebene Bereich an einer der Seiten des Rahmenfensters angedockt, das beim CBasePane::EnableDocking
CMDIFrameWndEx::EnableDocking
Aufrufen angegeben wurde.
Beispiel
Im folgenden Beispiel wird die Verwendung der DockPane
-Methode gezeigt. Dieser Codeausschnitt stammt aus dem VisualStudioDemo-Beispiel: MFC Visual Studio-Anwendung.
DockPane(&m_wndMenuBar);
DockPane(&m_wndToolBar);
DockPane(&m_wndPropertiesBar);
DockPane(&m_wndToolbarBuild);
CMDIFrameWndEx::DockPaneLeftOf
Dockt einen Bereich auf der linken Seite eines anderen Bereichs an.
BOOL DockPaneLeftOf(
CPane* pBar,
CPane* pLeftOf);
Parameter
pBar
[in] Ein Zeiger auf den Andockbereich.
pLeftOf
[in] Ein Zeiger auf den Bereich, der als Dockwebsite dient.
Rückgabewert
Gibt zurück TRUE
, wenn der Vorgang erfolgreich ist. Andernfalls wird FALSE
zurückgegeben.
Hinweise
Rufen Sie diese Methode auf, um mehrere Bereichsobjekte in einer vordefinierten Reihenfolge anzudocken. Mit dieser Methode wird der bereich angedockt, der links neben dem durch den Bereich angegebenen Bereich angegeben pBar
wird pLeftOf
.
Beispiel
Das folgende Beispiel zeigt, wie die DockPaneLeftOf
Methode im VisualStudioDemo-Beispiel verwendet wird: MFC Visual Studio Application.
DockPane(&m_wndToolbarBuild);
DockPaneLeftOf(&m_wndToolbarEdit, &m_wndToolbarBuild);
CMDIFrameWndEx::EnableAutoHidePanes
Aktiviert den Modus "Automatisches Ausblenden" für Bereiche, wenn sie an den angegebenen Seiten des Hauptrahmenfensters angedockt sind.
BOOL EnableAutoHidePanes(DWORD dwDockStyle);
Parameter
dwDockStyle
[in] Gibt die Seiten des Hauptrahmenfensters an, die aktiviert werden. Verwenden Sie eine oder mehrere der folgenden Flags.
CBRS_ALIGN_LEFT
CBRS_ALIGN_RIGHT
CBRS_ALIGN_TOP
CBRS_ALIGN_BOTTOM
Rückgabewert
Rufen Sie diese Funktion auf, um den Modus für das automatische Ausblenden für Bereiche zu aktivieren, wenn sie an den angegebenen Seiten des Hauptrahmenfensters angedockt sind.
Beispiel
Das folgende Beispiel zeigt, wie die EnableAutoHidePanes
Methode im VisualStudioDemo-Beispiel verwendet wird: MFC Visual Studio Application.
EnableAutoHidePanes(CBRS_ALIGN_ANY);
Hinweise
CMDIFrameWndEx::EnableDocking
Aktiviert das Andocken der Bereiche, die zum MDI-Rahmenfenster gehören.
BOOL EnableDocking(DWORD dwDockStyle);
Parameter
dwDockStyle
[in] Gibt den Andockstil an, den Sie anwenden möchten.
Rückgabewert
Bemerkungen
Rufen Sie diese Funktion auf, um das Andocken von Bereichen zu aktivieren, die zum CMDIFrameWndEx
Objekt gehören.
Beispiel
Das folgende Beispiel zeigt, wie die EnableDocking
Methode im VisualStudioDemo-Beispiel verwendet wird: MFC Visual Studio Application.
EnableDocking(CBRS_ALIGN_ANY);
CMDIFrameWndEx::EnableFullScreenMainMenu
Blendet das Hauptmenü im Vollbildmodus ein oder aus.
void EnableFullScreenMainMenu(BOOL bEnableMenu);
Parameter
bEnableMenu
[in] TRUE
um das Hauptmenü im Vollbildmodus anzuzeigen oder FALSE
auszublenden.
Hinweise
CMDIFrameWndEx::EnableFullScreenMode
Aktiviert den Vollbildmodus für das Framefenster.
void EnableFullScreenMode(UINT uiFullScreenCmd);
Parameter
uiFullScreenCmd
[in] Die ID eines Befehls, der den Vollbildmodus aktiviert oder deaktiviert.
Hinweise
Im Vollbildmodus werden alle Andocksteuerungsleisten, Symbolleisten und Menüs ausgeblendet, und die aktive Ansicht wird so geändert, dass sie den Vollbildmodus belegt. Wenn Sie den Vollbildmodus aktivieren, müssen Sie eine ID des Befehls angeben, der ihn aktiviert oder deaktiviert. Sie können die Funktion des Hauptframes OnCreate
aufrufenEnableFullScreenMode
. Wenn ein Rahmenfenster in den Vollbildmodus gewechselt wird, erstellt das Framework eine unverankerte Symbolleiste mit einer Schaltfläche mit der angegebenen Befehls-ID. Wenn Sie das Hauptmenü auf dem Bildschirm beibehalten möchten, rufen Sie CMDIFrameWndEx::EnableFullScreenMainMenu
auf.
CMDIFrameWndEx::EnableLoadDockState
Aktiviert oder deaktiviert das Laden des Andockzustands.
void EnableLoadDockState(BOOL bEnable = TRUE);
Parameter
bEnable
[in] TRUE
um das Laden des Dockingzustands zu aktivieren, FALSE
um das Laden des Dockingzustands zu deaktivieren.
Hinweise
CMDIFrameWndEx::EnableMDITabbedGroups
Aktiviert oder deaktiviert das Feature "MDI-Registerkartengruppen" für das Framefenster.
void EnableMDITabbedGroups(
BOOL bEnable,
const CMDITabInfo& params);
Parameter
bEnable
[in] Wenn TRUE
das Feature "MDI-Registerkartengruppen" aktiviert ist, FALSE
ist die Funktion "MDI-Registerkartengruppen" deaktiviert.
params
[in] Gibt Parameter an, die das Framework auf untergeordnete Fenster anwendet, die im MDI-Clientbereich erstellt werden.
Hinweise
Verwenden Sie diese Methode, um das Feature "MDI-Registerkartengruppen" zu aktivieren oder zu deaktivieren. Mit diesem Feature können MDI-Anwendungen untergeordnete Fenster als Tabulatorfenster anzeigen, die vertikal oder horizontal innerhalb des MDI-Clientbereichs ausgerichtet sind. Gruppen von Fenstern mit Registerkarten werden durch Splitter getrennt. Der Benutzer kann die Größe von Registerkartengruppen mithilfe eines Splitters ändern.
Der Benutzer kann:
- Ziehen Sie einzelne Registerkarten zwischen Gruppen.
- Ziehen Sie einzelne Registerkarten an den Rand des Fensters, um neue Gruppen zu erstellen.
- Verschieben von Registerkarten oder Erstellen neuer Gruppen mithilfe eines Kontextmenüs
- Ihre Anwendung kann das aktuelle Layout von Registerkartenfenstern und die Liste der aktuell geöffneten Dokumente speichern.
Wenn Sie diese Methode mit bEnable
"set to FALSE
" aufrufen, params
wird ignoriert.
Selbst wenn MDI-Registerkartengruppen bereits aktiviert sind, können Sie diese Methode erneut aufrufen, um die Einstellungen für untergeordnete Fenster zu ändern. Rufen Sie die Methode mit bEnable
Set auf, TRUE
und ändern Sie die Elemente des CMDITabInfo
Objekts, die durch den params
Parameter angegeben werden.
Weitere Informationen zur Verwendung von MDI-Registerkartengruppen finden Sie unter MDI-Registerkartengruppen.
Beispiel
Das folgende Beispiel zeigt die EnableMDITabbedGroups
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
CMDITabInfo mdiTabParams;
mdiTabParams.m_bTabCustomTooltips = TRUE;
if (bMDITabsVS2005Look)
{
mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_VS2005;
mdiTabParams.m_bDocumentMenu = TRUE;
}
else if (bOneNoteTabs)
{
mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE;
mdiTabParams.m_bAutoColor = bMDITabColors;
}
if (bActiveTabCloseButton)
{
mdiTabParams.m_bTabCloseButton = FALSE;
mdiTabParams.m_bActiveTabCloseButton = TRUE;
}
EnableMDITabbedGroups(TRUE, mdiTabParams);
CMDIFrameWndEx::EnableMDITabs
Aktiviert oder deaktiviert das Feature "MDI-Registerkarten" für das MDI-Framefenster. Wenn diese Option aktiviert ist, zeigt das Rahmenfenster für jedes untergeordnete MDI-Fenster eine Registerkarte an.
void EnableMDITabs(
BOOL bEnable=TRUE,
BOOL bIcons=TRUE,
CMFCTabCtrl::Location tabLocation=CMFCTabCtrl::LOCATION_BOTTOM,
BOOL bTabCloseButton=FALSE,
CMFCTabCtrl::Style style=CMFCTabCtrl::STYLE_3D_SCROLLED,
BOOL bTabCustomTooltips=FALSE,
BOOL bActiveTabCloseButton=FALSE);
Parameter
bEnable
Gibt an, ob Registerkarten aktiviert sind.
bIcons
Gibt an, ob Symbole auf den Registerkarten angezeigt werden sollen.
tabLocation
Gibt die Position der Registerkartenbeschriftungen an.
bTabCloseButton
Gibt an, ob Schaltflächen zum Schließen von Registerkarten angezeigt werden sollen.
style
Gibt das Format der Registerkarten an. Wird STYLE_3D_SCROLLED
für normale Registerkarten oder STYLE_3D_ONENOTE
für Microsoft OneNote-Registerkarten verwendet.
bTabCustomTooltips
Gibt an, ob benutzerdefinierte QuickInfos aktiviert sind.
bActiveTabCloseButton
Wenn TRUE
, wird eine Schaltfläche "Schließen " auf der aktiven Registerkarte statt in der rechten Ecke des Registerkartenbereichs angezeigt.
Hinweise
Rufen Sie diese Methode auf, um das MDI-Registerkartenfeature für das MDI-Framefenster zu aktivieren oder zu deaktivieren. Wenn diese Option aktiviert ist, werden alle untergeordneten Fenster als Registerkarten angezeigt.
Die Registerkartenbeschriftungen können sich je nach Einstellung des Parameters tabLocation
am oberen oder unteren Rand des Frames befinden. Sie können entweder CMFCTabCtrl::LOCATION_BOTTOM
(die Standardeinstellung) oder CMFCTabCtrl::LOCATION_TOP
.
Wenn bTabCustomTooltips
ja TRUE
, wird eine AFX_WM_ON_GET_TAB_TOOLTIP
Nachricht an das Hauptrahmenfenster gesendet. Ihr Code kann diese Meldung behandeln und das Framework mit benutzerdefinierten QuickInfos für MDI-Registerkarten bereitstellen.
Beispiel
Das folgende Beispiel zeigt die EnableMDITabs
Verwendung im MDITabsDemo-Beispiel: MFC Tabbed MDI Application.
void CMainFrame::UpdateMDITabs(BOOL bResetMDIChild)
{
CMDITabInfo params;
HWND hwndActive = NULL;
switch (theApp.m_Options.m_nMDITabsType)
{
case CMDITabOptions::None:
{
BOOL bCascadeMDIChild = FALSE;
if (IsMDITabbedGroup())
{
EnableMDITabbedGroups(FALSE, params);
bCascadeMDIChild = TRUE;
}
else if (AreMDITabs())
{
EnableMDITabs(FALSE);
bCascadeMDIChild = TRUE;
}
if (bCascadeMDIChild)
{
// CMDIClientAreaWnd m_wndClientArea
hwndActive = (HWND)m_wndClientArea.SendMessage(WM_MDIGETACTIVE);
m_wndClientArea.PostMessage(WM_MDICASCADE);
m_wndClientArea.UpdateTabs(false);
m_wndClientArea.SetActiveTab(hwndActive);
::BringWindowToTop(hwndActive);
}
}
break;
case CMDITabOptions::MDITabsStandard:
hwndActive = (HWND)m_wndClientArea.SendMessage(WM_MDIGETACTIVE);
m_wndClientArea.PostMessage(WM_MDIMAXIMIZE, LPARAM(hwndActive), 0L);
::BringWindowToTop(hwndActive);
EnableMDITabs(TRUE, theApp.m_Options.m_bMDITabsIcons, theApp.m_Options.m_bTabsOnTop ? CMFCTabCtrl::LOCATION_TOP : CMFCTabCtrl::LOCATION_BOTTOM, theApp.m_Options.m_nTabsStyle);
GetMDITabs().EnableAutoColor(theApp.m_Options.m_bTabsAutoColor);
GetMDITabs().EnableTabDocumentsMenu(theApp.m_Options.m_bMDITabsDocMenu);
GetMDITabs().EnableTabSwap(theApp.m_Options.m_bDragMDITabs);
GetMDITabs().SetTabBorderSize(theApp.m_Options.m_nMDITabsBorderSize);
GetMDITabs().SetFlatFrame(theApp.m_Options.m_bFlatFrame);
GetMDITabs().EnableCustomToolTips(theApp.m_Options.m_bCustomTooltips);
GetMDITabs().EnableCustomToolTips(theApp.m_Options.m_bCustomTooltips);
GetMDITabs().EnableActiveTabCloseButton(theApp.m_Options.m_bActiveTabCloseButton);
break;
CMDIFrameWndEx::EnableMDITabsLastActiveActivation
Gibt an, ob die letzte aktive Registerkarte geöffnet werden soll, wenn der Benutzer die aktuelle Registerkarte schließt.
void EnableMDITabsLastActiveActivation(BOOL bLastActiveTab=TRUE);
Parameter
bLastActiveTab
[in] Wenn TRUE
, aktivieren Sie die Aktivierung der letzten aktiven Registerkarte. Wenn FALSE
, deaktivieren Sie die Aktivierung der letzten aktiven Registerkarte.
Hinweise
Es gibt zwei Möglichkeiten, eine Registerkarte zu öffnen, wenn die aktive Registerkarte geschlossen wird:
- Aktivieren Sie die nächste Registerkarte.
- Aktivieren Sie die zuvor aktive Registerkarte.
Die Standardimplementierung verwendet die erste Methode.
Wird verwendet EnableMDITabsLastActiveActivation
, um die zweite Art der Tabaktivierung zu aktivieren. Es emuliert die Art und Weise, wie Windows untergeordnete MDI-Fenster öffnet.
CMDIFrameWndEx::EnablePaneMenu
Aktiviert oder deaktiviert die automatische Erstellung und Verwaltung des Popupbereichmenüs, das eine Liste von Anwendungsbereichen anzeigt.
void EnablePaneMenu(
BOOL bEnable,
UINT uiCustomizeCmd,
const CString& strCustomizeLabel,
UINT uiViewToolbarsMenuEntryID,
BOOL bContextMenuShowsToolbarsOnly=FALSE,
BOOL bViewMenuShowsToolbarsOnly=FALSE);
Parameter
bEnable
[in] Wenn TRUE
die automatische Behandlung des Bereichsmenüs aktiviert ist; wenn FALSE
die automatische Behandlung deaktiviert ist.
uiCustomizeCmd
[in] Befehls-ID des Menüelements anpassen . Dieses Menüelement wird normalerweise am Ende der Liste der Bereiche hinzugefügt.
strCustomizeLabel
[in] Der Text, der für das Menüelement "Anpassen" (für die Lokalisierung) angezeigt werden soll.
uiViewToolbarsMenuEntryID
[in] Gibt die ID eines Symbolleistenmenüelements an, mit dem das Bereichsmenü geöffnet wird. In der Regel ist dies das Untermenü "Symbolleisten" des Menüs "Ansicht".
bContextMenuShowsToolbarsOnly
[in] Wenn TRUE
, zeigt das Bereichsmenü nur eine Liste von Symbolleisten an. Wenn FALSE
, zeigt das Menü eine Liste der Symbolleisten und Andockleisten an.
bViewMenuShowsToolbarsOnly
[in] Wenn TRUE
, zeigt das Bereichsmenü nur eine Liste von Symbolleisten an. Wenn FALSE
, zeigt das Menü eine Liste der Symbolleisten und Andockleisten an.
Hinweise
Das Popupmenü zeigt die Liste der Bereiche der Anwendung an und ermöglicht dem Benutzer das Ein- oder Ausblenden einzelner Bereiche.
Beispiel
Das folgende Beispiel zeigt die EnablePaneMenu
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
// Enable pane context menu(list of bars + customize command):
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."), ID_VIEW_TOOLBARS, FALSE, TRUE);
CMDIFrameWndEx::EnableWindowsDialog
Fügt ein Menüelement ein, dessen Befehls-ID ein CMFCWindowsManagerDialog
Dialogfeld aufruft.
void EnableWindowsDialog(
UINT uiMenuId,
LPCTSTR lpszMenuText,
BOOL bShowAllways=FALSE,
BOOL bShowHelpButton=FALSE);
void EnableWindowsDialog(
UINT uiMenuId,
UINT uiMenuTextResId,
BOOL bShowAllways=FALSE,
BOOL bShowHelpButton=FALSE);
Parameter
uiMenuId
[in] Gibt die Ressourcen-ID eines Menüs an.
lpszMenuText
[in] Gibt den Text des Elements an.
bShowHelpButton
[in] Gibt an, ob im Windows-Verwaltungsdialogfeld eine Hilfeschaltfläche angezeigt werden soll.
uiMenuTextResId
[in] Der Zeichenfolgenressourcenbezeichner, der die Textzeichenfolge des Elements enthält.
Hinweise
Verwenden Sie diese Methode, um ein Menüelement einzufügen, dessen Befehl ein untergeordnetes MDI-Fensterverwaltungsdialogfeld ( CMFCWindowsManagerDialog
Klasse) aufruft. Das neue Element wird in das durch uiMenuId
. Rufen Sie auf EnableWindowsDialog
, wenn Sie die WM_CREATE
Nachricht verarbeiten.
Beispiel
Das folgende Beispiel zeigt die EnableWindowsDialog
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
// Enable windows manager:
EnableWindowsDialog(ID_WINDOW_MANAGER, _T("Windows..."), TRUE);
CMDIFrameWndEx::GetActivePopup
Gibt einen Zeiger auf das aktuell angezeigte Popupmenü zurück.
CMFCPopupMenu* GetActivePopup() const;
Rückgabewert
Ein Zeiger auf das aktive Popupmenü; NULL
wenn kein Popupmenü aktiv ist.
Hinweise
Verwenden Sie diese Funktion, um einen Zeiger auf das CMFCPopupMenu
derzeit angezeigte Klassenobjekt abzurufen.
CMDIFrameWndEx::GetDefaultResId
Gibt die ID der freigegebenen Ressourcen des MDI-Framefensters zurück.
UINT GetDefaultResId() const;
Rückgabewert
Ein Ressourcen-ID-Wert. 0, wenn das Rahmenfenster keine Menüleiste aufweist.
Hinweise
Diese Methode gibt die Ressourcen-ID zurück, die beim Laden CFrameWnd::LoadFrame
des MDI-Framefensters angegeben wurde.
CMDIFrameWndEx::GetMDITabGroups
Gibt eine Liste der MDI-Registerkartenfenster zurück.
const CObList& GetMDITabGroups() const;
Rückgabewert
Ein Verweis auf ein CObList
Klassenobjekt , das eine Liste von Registerkartenfenstern enthält. Speichern oder ändern Sie die Liste nicht.
Hinweise
Verwenden Sie diese Methode, um auf die Liste der Registerkartenfenster zuzugreifen. Es kann hilfreich sein, wenn Sie einige Parameter einzelner Registerkartenfenster ändern oder abfragen möchten.
CMDIFrameWndEx::GetMDITabs
Gibt einen Verweis auf das unterstrichene Registerkartenfenster zurück.
CMFCTabCtrl& GetMDITabs();
Rückgabewert
Ein Verweis auf das unterstrichene Registerkartenfenster.
CMDIFrameWndEx::GetMDITabsContextMenuAllowedItems
Gibt eine Kombination von Flags zurück, die bestimmt, welche Vorgänge gültig sind, wenn das Feature "MDI-Registerkartengruppen" aktiviert ist.
DWORD GetMDITabsContextMenuAllowedItems();
Rückgabewert
Eine bitweise "oder" (|
) Kombination der folgenden Flags:
AFX_MDI_CREATE_VERT_GROUP
- kann eine vertikale Registerkartengruppe erstellen.AFX_MDI_CREATE_HORZ_GROUP
- kann eine horizontale Registerkartengruppe erstellen.AFX_MDI_CAN_MOVE_PREV
- kann eine Registerkarte in die vorherige Registerkartengruppe verschieben.AFX_MDI_CAN_MOVE_NEXT
- kann eine Registerkarte zur nächsten Registerkartengruppe verschieben.
Hinweise
Wenn das Feature "MDI-Registerkartengruppen" aktiviert ist, müssen Sie wissen, welche Vorgänge auf den Registerkarten eines bestimmten Fensters zulässig sind. Diese Methode analysiert das aktuelle Layout von Registerkartenfenstern und gibt eine Kombination von Flags zurück, die zum Erstellen eines Kontextmenüs verwendet werden können.
Sie können eine neue vertikale Registerkartengruppe erstellen, wenn alle Fenster im Registerkartenformat vertikal ausgerichtet sind oder wenn nur ein Fenster mit Registerkartenformat vorhanden ist.
Sie können eine neue horizontale Registerkartengruppe erstellen, wenn alle Fenster im Registerkartenformat horizontal ausgerichtet sind oder wenn nur ein Registerkartenfenster vorhanden ist.
Sie können eine Registerkarte nur dann zur vorherigen Gruppe verschieben, wenn in einem Registerkartenfenster mehrere Registerkarten vorhanden sind.
Sie können eine Registerkarte nur dann zur nächsten Gruppe verschieben, wenn in einem Registerkartenfenster mehrere Registerkarten vorhanden sind.
CMDIFrameWndEx::GetMenuBar
Gibt einen Zeiger auf ein Menüleistenobjekt zurück, das an das Rahmenfenster angefügt ist.
const CMFCMenuBar* GetMenuBar() const;
Rückgabewert
Ein Zeiger auf ein Menüleistenobjekt.
CMDIFrameWndEx::GetPane
Gibt einen Zeiger auf den Bereich zurück, der die angegebene Steuerelement-ID aufweist.
CBasePane* GetPane(UINT nID);
Parameter
nID
[in] Die Steuerelement-ID.
Rückgabewert
Ein Zeiger auf den Bereich mit der angegebenen Steuerelement-ID, sofern vorhanden. Andernfalls NULL
.
CMDIFrameWndEx::GetRibbonBar
Ruft das Menübandleisten-Steuerelement für den Frame ab.
CMFCRibbonBar* GetRibbonBar();
Rückgabewert
Zeigen Sie auf die CMFCRibbonBar
Klasse für den Frame.
Hinweise
CMDIFrameWndEx::GetTearOffBars
Gibt eine Liste der Abrissmenüs zurück.
const CObList& GetTearOffBars() const;
Rückgabewert
Ein Verweis auf ein CObList
Klassenobjekt , das eine Auflistung von Zeigern auf CPane
abgeleitete Objekte enthält, die sich in einem Abbruchzustand befinden.
Hinweise
CMDIFrameWndEx
verwaltet eine Sammlung von Abrissmenüs. Verwenden Sie diese Methode, um einen Verweis auf diese Liste abzurufen.
CMDIFrameWndEx::GetToolbarButtonToolTipText
Wird vom Framework aufgerufen, wenn die Anwendung die QuickInfo für eine Symbolleistenschaltfläche anzeigt.
virtual BOOL GetToolbarButtonToolTipText(
CMFCToolBarButton* pButton,
CString& strTTText);
Parameter
pButton
[in] Ein Zeiger auf eine Symbolleistenschaltfläche.
strTTText
[in] Der QuickInfo-Text, der für die Schaltfläche angezeigt werden soll.
Rückgabewert
TRUE
wenn die QuickInfo angezeigt wurde. Andernfalls FALSE
.
Hinweise
CMDIFrameWndEx::InsertPane
Registriert den angegebenen Bereich mit dem Docking-Manager.
BOOL InsertPane(
CBasePane* pControlBar,
CBasePane* pTarget,
BOOL bAfter=TRUE);
Parameter
pControlBar
[in] Ein Zeiger auf den bereich, der eingefügt werden soll.
pTarget
[in] Ein Zeiger auf den Bereich vor oder nach dem der Bereich eingefügt werden soll.
bAfter
[in] If TRUE
, pControlBar
is inserted after pTarget
. Wenn FALSE
, pControlBar
wird vor pTarget
.
Rückgabewert
TRUE
wenn die Methode den Bereich erfolgreich registriert, FALSE
wenn der Bereich bereits beim Docking-Manager registriert wurde.
Hinweise
Verwenden Sie diese Methode, um den Andock-Manager über einen bereich zu informieren, der durch pControlBar
. Der Docking-Manager richtet diesen Bereich entsprechend der Ausrichtung und Position des Bereichs in der internen Liste des Docking-Managers aus.
CMDIFrameWndEx::IsFullScreen
Bestimmt, ob sich das Framefenster im Vollbildmodus befindet.
BOOL IsFullScreen() const;
Rückgabewert
TRUE
wenn sich das Rahmenfenster im Vollbildmodus befindet; andernfalls FALSE
.
Hinweise
Sie können den Vollbildmodus festlegen, indem Sie die CMDIFrameWndEx::EnableFullScreenMode
Methode aufrufen.
CMDIFrameWndEx::IsMDITabbedGroup
Gibt an, ob das Feature "MDI-Registerkartengruppen" aktiviert ist.
BOOL IsMDITabbedGroup() const;
Rückgabewert
TRUE
wenn das Feature "MDI-Registerkartengruppen" aktiviert ist; andernfalls FALSE
.
Hinweise
Um zu ermitteln, ob normale MDI-Registerkarten oder das Feature "MDI-Registerkartengruppen" aktiviert ist, verwenden Sie CMDIFrameWndEx::AreMDITabs
.
CMDIFrameWndEx::IsMemberOfMDITabGroup
Bestimmt, ob sich das angegebene Fenster im Registerkartenformat in der Liste der Fenster befindet, die sich in MDI-Registerkartengruppen befinden.
BOOL IsMemberOfMDITabGroup(CWnd* pWnd);
Parameter
pWnd
[in] Ein Zeiger auf ein Tabstoppfenster.
Rückgabewert
TRUE
wenn sich das angegebene Registerkartenfenster in der Liste der Registerkartenfenster befindet, die MDI-Registerkartengruppen bilden. Andernfalls FALSE
.
CMDIFrameWndEx::IsMenuBarAvailable
Bestimmt, ob das Rahmenfenster über eine Menüleiste verfügt.
BOOL IsMenuBarAvailable() const;
Rückgabewert
TRUE
wenn der Zeiger auf das Menüleistenobjekt nicht NULL
ist; andernfalls FALSE
.
CMDIFrameWndEx::IsPointNearDockSite
Bestimmt, ob sich ein angegebener Punkt in der Nähe des Dockstandorts befindet.
BOOL IsPointNearDockSite(
CPoint point,
DWORD& dwBarAlignment,
BOOL& bOuterEdge) const;
Parameter
point
[in] Der angegebene Punkt in Bildschirmkoordinaten.
dwBarAlignment
[in] Gibt an, welcher Rand sich der Punkt in der Nähe befindet. Mögliche Werte sind CBRS_ALIGN_LEFT
, CBRS_ALIGN_RIGHT
, CBRS_ALIGN_TOP
, und CBRS_ALIGN_BOTTOM
bOuterEdge
[in] TRUE
wenn sich der Punkt in der Nähe des äußeren Rands des Dockstandorts befindet; FALSE
sonst.
Rückgabewert
TRUE
wenn sich der Punkt in der Nähe des Dockstandorts befindet; andernfalls FALSE
.
Hinweise
Der Punkt befindet sich in der Nähe des Dockstandorts, wenn er sich in der Vertraulichkeit befindet, die im Docking-Manager festgelegt ist. Die Standardempfindlichkeit beträgt 15 Pixel.
CMDIFrameWndEx::IsPrintPreview
Bestimmt, ob sich das Framefenster im Druckvorschaumodus befindet.
BOOL IsPrintPreview();
Rückgabewert
TRUE
wenn sich das Rahmenfenster im Druckvorschaumodus befindet; andernfalls . FALSE
Hinweise
CMDIFrameWndEx::LoadFrame
Erstellt ein Framefenster aus Ressourceninformationen.
virtual BOOL LoadFrame(
UINT nIDResource,
DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,
CWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL);
Parameter
nIDResource
[in] Die ID einer freigegebenen Ressource, die dem Framefenster zugeordnet ist.
dwDefaultStyle
[in] Die Formatvorlage des Rahmenfensters.
pParentWnd
[in] Ein Zeiger auf das übergeordnete Element des Frames.
pContext
[in] Ein Zeiger auf eine CCreateContext
Struktur. Dieser Parameter kann NULL
sein.
Rückgabewert
TRUE
wenn die Methode erfolgreich ist, andernfalls FALSE
.
CMDIFrameWndEx::LoadMDIState
Lädt das angegebene Layout von MDI-Registerkartengruppen und die Liste der zuvor geöffneten Dokumente.
virtual BOOL LoadMDIState(LPCTSTR lpszProfileName);
Parameter
lpszProfileName
[in] Gibt den Profilnamen an.
Rückgabewert
TRUE
wenn die Last erfolgreich war; FALSE
wenn das Laden fehlgeschlagen ist oder keine Daten geladen werden sollen.
Hinweise
Gehen Sie wie folgt vor, um den Status von MDI-Registerkarten und -Gruppen und die Liste der geöffneten Dokumente zu laden oder zu speichern:
- Anruf
CMDIFrameWndEx::SaveMDIState
, wenn der Hauptframe geschlossen wird - Rufen Sie auf
CMDIFrameWndEx::LoadMDIState
, wenn der Hauptframe erstellt wird. Der empfohlene Ort für diesen Anruf ist, bevor der Hauptframe zum ersten Mal angezeigt wird. Fügen Sie vor "pMainFrame->LoadFrame (IDR_MAINFRAME);.
HinzufügenCWinAppEx::EnableLoadWindowPlacement
CWinAppEx::ReloadWindowPlacement
(FALSE);
(pMainFrame);
" nach dem Aufruf hinzu, umLoadMDIState
den Hauptframe an der Position anzuzeigen, die in der Registrierung gespeichert wurde. - Überschreiben
GetDocumentName
Sie dieCMDIChildWndEx
abgeleitete Klasse, wenn Ihre Anwendung Dokumente anzeigt, die nicht als Dateien gespeichert sind. Die zurückgegebene Zeichenfolge wird in der Registrierung als Dokumentbezeichner gespeichert. Die Basisimplementierung der Rückgabe einesCMDIChildWndEx::GetDocumentName
vonCDocument::GetPathName
. - Überschreiben
CMDIFrameWndEx::CreateDocumentWindow
, um Dokumente ordnungsgemäß zu erstellen, wenn sie aus der Registrierung geladen werden. Der erste Parameter ist die zurückgegebene ZeichenfolgeGetDocumentName
.
Beispiel
Das folgende Beispiel zeigt die LoadMDIState
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
// Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
if (!pMainFrame->LoadMDIState(GetRegSectionPath()))
{
m_pStartDocTemplate->OpenDocumentFile(NULL);
}
}
else
{
// Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
{
return FALSE;
}
}
CMDIFrameWndEx::MDITabMoveToNextGroup
Verschiebt die aktive Registerkarte aus dem derzeit aktiven Registerkartenfenster in die nächste oder vorherige Registerkartengruppe.
void MDITabMoveToNextGroup(BOOL bNext=TRUE);
Parameter
bNext
[in] Wenn TRUE
, verschieben Sie die Registerkarte zur nächsten Gruppe mit Registerkarten. Wenn FALSE
, verschieben Sie sie in die vorherige Registerkartengruppe.
CMDIFrameWndEx::MDITabNewGroup
Erstellt eine neue Registerkartengruppe mit einem einzelnen Fenster.
void MDITabNewGroup(BOOL bVert=TRUE);
Parameter
bVert
[in] Gibt die neue Gruppenausrichtung an. Wenn TRUE
die neue Gruppe vertikal ausgerichtet ist. Wenn FALSE
die neue Gruppe horizontal ausgerichtet ist.
Hinweise
Verwenden Sie diese Funktion, um ein neues Registerkartenfenster (neue Registerkartengruppe) zu erstellen und die erste Registerkarte hinzuzufügen.
Beispiel
Das folgende Beispiel zeigt die MDITabNewGroup
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
void CMainFrame::OnMdiNewHorzTabGroup()
{
MDITabNewGroup(FALSE);
}
CMDIFrameWndEx::m_bCanConvertControlBarToMDIChild
Gibt an, ob Andockbereiche in untergeordnete MDI-Fenster konvertiert werden können.
BOOL m_bCanConvertControlBarToMDIChild;
Hinweise
Gibt an, ob Docking-Steuerleisten in untergeordnete MDI-Fenster konvertiert werden können. Wenn dieses Kennzeichen lautet TRUE
, behandelt das Framework die Konvertierung automatisch, wenn der Benutzer den Befehl "Dokument im Registerkartenformat" auswählt. Das Flag ist geschützt, und Sie müssen diese Option explizit aktivieren, indem m_bCanConvertControlBarToMDIChild
Sie in einem Konstruktor einer CMDIFrameWndEx
abgeleiteten Klasse oder durch Überschreiben CanConvertControlBarToMDIChild
festlegen.
Der Standardwert ist FALSE
.
Beispiel
Das folgende Beispiel zeigt die m_bCanConvertControlBarToMDIChild
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
CMainFrame::CMainFrame()
{
CMFCPopupMenu::SetForceShadow(TRUE);
m_bCanConvertControlBarToMDIChild = TRUE;
}
CMDIFrameWndEx::m_bDisableSetRedraw
Aktiviert oder deaktiviert die Neuzeichnenoptimierung für untergeordnete MDI-Fenster.
AFX_IMPORT_DATA static BOOL m_bDisableSetRedraw;
Hinweise
Der Standardwert ist TRUE
.
Legen Sie dieses Kennzeichen fest, FALSE
wenn Sie die Neuauszeichnung von MDI-untergeordneten Elementen optimieren möchten. In diesem Fall ruft SetRedraw (FALSE)
das Framework den Hauptframe auf, wenn die Anwendung die aktive Registerkarte ändert.
Dieses Kennzeichen kann unerwünschte Effekte verursachen (z. B. Hintergrundanwendungen, die sichtbar werden). Daher wird empfohlen, die Standardeinstellung nur zu ändern, wenn während der MDI-Tabaktivierung merkliche Flimmern auftreten.
CMDIFrameWndEx::NegotiateBorderSpace
Ausgehandelt den Rahmenbereich in einem Rahmenfenster während der DIREKTEN OLE-Aktivierung.
virtual BOOL NegotiateBorderSpace(
UINT nBorderCmd,
LPRECT lpRectBorder);
Parameter
nBorderCmd
[in] Enthält einen der folgenden Werte aus der Enumeration CFrameWnd::BorderCmd
:
borderGet
= 1borderRequest
= 2borderSet
= 3
lpRectBorder
[in, out] Zeigen Sie auf eine RECT
Struktur oder ein CRect
Klassenobjekt , das die Koordinaten des Rahmens angibt.
Rückgabewert
Nicht 0, wenn die Methode erfolgreich ausgeführt wurde, andernfalls 0
Hinweise
Diese Methode ist eine Implementierung der OLE-Rahmenraumverhandlung.
CMDIFrameWndEx::OnCloseDockingPane
Wird vom Framework aufgerufen, wenn der Benutzer auf die Schaltfläche "Schließen " in einem andockbaren Bereich klickt.
virtual BOOL OnCloseDockingPane(CDockablePane* pWnd);
Parameter
pWnd
[in] Zeiger auf den bereich, der geschlossen wird.
Rückgabewert
TRUE
wenn der Andockbereich geschlossen werden kann. Andernfalls FALSE
.
Hinweise
Überschreiben Sie diese Methode, um das Ausblenden von Andockbereichen zu behandeln. Kehren Sie zurück FALSE
, wenn Sie verhindern möchten, dass ein Andockbereich ausgeblendet wird.
Die Standardimplementierung führt nichts aus und gibt zurück TRUE
.
CMDIFrameWndEx::OnCloseMiniFrame
Wird vom Framework aufgerufen, wenn der Benutzer auf die Schaltfläche "Schließen " in einem unverankerten Miniframefenster klickt.
virtual BOOL OnCloseMiniFrame(CPaneFrameWnd*);
Parameter
pWnd
[in] Zeigen Sie auf das Minirahmenfenster, das geschlossen wird.
Rückgabewert
TRUE
wenn das unverankerte Miniframefenster geschlossen werden kann. Andernfalls FALSE
.
Hinweise
Überschreiben Sie diese Methode, um das Ausblenden von unverankerten Miniframefenstern zu behandeln. Kehren Sie zurück FALSE
, wenn Sie verhindern möchten, dass ein unverankerte Miniframefenster ausgeblendet wird.
Die Standardimplementierung führt nichts aus und gibt zurück TRUE
.
CMDIFrameWndEx::OnClosePopupMenu
Wird vom Framework aufgerufen, wenn ein aktives Popupmenü eine WM_DESTROY
Nachricht verarbeitet.
virtual void OnClosePopupMenu(CMFCPopupMenu* pMenuPopup);
Parameter
pMenuPopup
[in] Zeigen Sie auf ein Popupmenü.
Hinweise
Überschreiben Sie diese Methode, wenn Sie Benachrichtigungen von CMFCPopupMenu
Klassenobjekten verarbeiten möchten, die zum MDI-Framefenster gehören, wenn diese Objekte Nachrichten verarbeiten WM_DESTROY
.
CMDIFrameWndEx::OnCmdMsg
Wird vom Framework aufgerufen, um Befehlsnachrichten weiterzuleiten und zu verteilen und Befehlsbenutzeroberflächenobjekte zu aktualisieren.
virtual BOOL OnCmdMsg(
UINT nID,
int nCode,
void* pExtra,
AFX_CMDHANDLERINFO* pHandlerInfo);
Parameter
nID
[in] Die Befehls-ID.
nCode
[in] Identifiziert den Befehlsbenachrichtigungscode. Weitere Informationen zu Werten finden nCode
Sie unter CCmdTarget::OnCmdMsg
.
pExtra
[in] Wird gemäß dem Wert von nCode
. Weitere Informationen zu pExtra
finden Sie unter CCmdTarget::OnCmdMsg
.
pHandlerInfo
[in, out] In der Regel sollte dieser Parameter sein NULL
. Andernfalls NULL
OnCmdMsg
füllt er die pTarget
Struktur und pmf
die Member der pHandlerInfo
Struktur aus, anstatt den Befehl zu verteilen.
Rückgabewert
Nonzero, wenn die Nachricht behandelt wird; andernfalls 0.
CMDIFrameWndEx::OnDrawMenuImage
Wird vom Framework aufgerufen, wenn das einem Menüelement zugeordnete Bild gezeichnet wird.
virtual BOOL OnDrawMenuImage(
CDC* pDC,
const CMFCToolBarMenuButton* pMenuButton,
const CRect& rectImage);
Parameter
pDC
[in] Zeiger auf einen Gerätekontext.
pMenuButton
[in] Zeigen Sie auf die Menüschaltfläche.
rectImage
[in] Umgebendes Rechteck des Bilds.
Rückgabewert
TRUE
wenn die Methode das Bild zeichnet. Die Standardimplementierung gibt FALSE
zurück.
Hinweise
Überschreiben Sie diese Methode, wenn Sie das Bildrendering für die Menüelemente anpassen möchten, die zur Menüleiste gehören, die dem CMDIFrameWndEx
abgeleiteten Objekt gehört. Bei der Standardimplementierung wird keine Aktion ausgeführt.
CMDIFrameWndEx::OnDrawMenuLogo
Wird vom Framework aufgerufen, wenn eine CMFCPopupMenu
WM_PAINT
Nachricht verarbeitet wird.
virtual void OnDrawMenuLogo(
CDC*,
CMFCPopupMenu*,
const CRect&);
Hinweise
Überschreiben Sie diese Funktion, um ein Logo im Popupmenü anzuzeigen, das zur Menüleiste gehört, die dem CMDIFrameWndEx
abgeleiteten Objekt gehört. Bei der Standardimplementierung wird keine Aktion ausgeführt.
CMDIFrameWndEx::OnEraseMDIClientBackground
Wird vom Framework aufgerufen, wenn das MDI-Framefenster eine WM_ERASEBKGND
Nachricht verarbeitet.
virtual BOOL OnEraseMDIClientBackground(CDC*);
Rückgabewert
TRUE
wenn die Anwendung die Nachricht verarbeitet und den Hintergrund löscht.
Hinweise
Überschreiben Sie diese Memberfunktion, wenn Sie die WM_ERASEBKGND
Nachricht in einer CMDIFrameWndEx
abgeleiteten Klasse verarbeiten möchten.
CMDIFrameWndEx::OnMenuButtonToolHitTest
Wird vom Framework aufgerufen, wenn ein CMFCToolBarButton
Objekt eine WM_NCHITTEST
Nachricht verarbeitet.
virtual BOOL OnMenuButtonToolHitTest(
CMFCToolBarButton* pButton,
TOOLINFO* pTI);
Parameter
pButton
[in] Die Symbolleistenschaltfläche.
pTI
[out] Zeiger auf eine TOOLINFO
Struktur.
Rückgabewert
TRUE
wenn die Anwendung den pTI
Parameter ausfüllt. Die Standardimplementierung gibt FALSE
zurück.
Hinweise
Überschreiben Sie diese Methode, wenn Sie Informationen zu bestimmten Menüelementen für eine QuickInfo bereitstellen möchten. Bei der Standardimplementierung wird keine Aktion ausgeführt.
CMDIFrameWndEx::OnMoveMiniFrame
Vom Framework aufgerufen, um ein Miniframefenster zu verschieben.
virtual BOOL OnMoveMiniFrame(CWnd* pFrame);
Parameter
pFrame
[in] Ein Zeiger auf ein Miniframefenster.
Rückgabewert
TRUE
wenn die Methode erfolgreich ist, andernfalls FALSE
.
CMDIFrameWndEx::OnSetPreviewMode
Legt den Hauptrahmenfenster des Druckvorschaumodus der Anwendung fest.
virtual void OnSetPreviewMode(
BOOL bPreview,
CPrintPreviewState* pState);
Parameter
bPreview
[in] Wenn TRUE
, legt den Druckvorschaumodus fest. Wenn FALSE
, wird der Vorschaumodus abgebrochen.
pState
[in] Ein Zeiger auf eine CPrintPreviewState
Struktur.
Hinweise
Diese Methode überschreibt CFrameWnd::OnSetPreviewMode
.
CMDIFrameWndEx::OnShowCustomizePane
Wird vom Framework aufgerufen, wenn ein Quick Customize-Bereich aktiviert wird.
virtual BOOL OnShowCustomizePane(
CMFCPopupMenu* pMenuPane,
UINT uiToolbarID);
Parameter
pMenuPane
[in] Ein Zeiger auf den Bereich "Schnell anpassen".
uiToolbarID
[in] Steuerelement-ID der Symbolleiste, die angepasst werden soll.
Rückgabewert
Diese Methode gibt immer TRUE
zurück.
Hinweise
Der Bereich "Schnell anpassen" ist ein Menü, das geöffnet wird, wenn der Benutzer auf einer Symbolleiste auf "Anpassen" klickt.
Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um Änderungen im Quick Customize-Bereich vorzunehmen.
CMDIFrameWndEx::OnShowMDITabContextMenu
Wird vom Framework aufgerufen, bevor ein Kontextmenü auf einer der Registerkarten angezeigt wird. Nur für MDI-Registerkartengruppen gültig.
virtual BOOL OnShowMDITabContextMenu(
CPoint point,
DWORD dwAllowedItems,
BOOL bTabDrop);
Parameter
point
[in] Die Position des Menüs in Bildschirmkoordinaten.
dwAllowedItems
[in] Eine bitweise "oder" (|
) Kombination von Flags, die angibt, welche Aktionen für die aktuelle Registerkarte zulässig sind:
AFX_MDI_CREATE_VERT_GROUP
- kann eine vertikale Registerkartengruppe erstellen.AFX_MDI_CREATE_HORZ_GROUP
- kann eine horizontale Registerkartengruppe erstellen.AFX_MDI_CAN_MOVE_PREV
- kann eine Registerkarte in die vorherige Registerkartengruppe verschieben.AFX_MDI_CAN_MOVE_NEXT
- kann eine Registerkarte zur nächsten Registerkartengruppe verschieben.AFX_MDI_CAN_BE_DOCKED
- Ein Dokument im Registerkartenformat in den angedockten Zustand (nur für Dokumente im Registerkartenformat relevant) ändern.
bTabDrop
[in] TRUE
um das Menü als Ergebnis des Ziehens der Registerkarte auf eine andere Registerkartengruppe anzuzeigen. FALSE
um das Menü als Kontextmenü auf der derzeit aktiven Registerkarte anzuzeigen.
Rückgabewert
Überschreiben Sie diese Methode in einer CMDIFrameWndEx
abgeleiteten Klasse.
Hinweise
Wenn Sie die Verarbeitung nicht ausführen OnShowMDITabContextMenu
, wird das Kontextmenü nicht angezeigt. Diese Funktion wird vom MFC-Anwendungs-Assistenten generiert, wenn Sie das Feature "MDI-Registerkartengruppen" aktivieren.
Beispiel
Das folgende Beispiel zeigt die OnShowMDITabContextMenu
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
BOOL CMainFrame::OnShowMDITabContextMenu(CPoint point, DWORD dwAllowedItems, BOOL bDrop)
{
CMenu menu;
VERIFY(menu.LoadMenu(bDrop ? IDR_POPUP_DROP_MDITABS : IDR_POPUP_MDITABS));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
if ((dwAllowedItems & AFX_MDI_CREATE_HORZ_GROUP) == 0)
{
pPopup->DeleteMenu(ID_MDI_NEW_HORZ_TAB_GROUP, MF_BYCOMMAND);
}
if ((dwAllowedItems & AFX_MDI_CREATE_VERT_GROUP) == 0)
{
pPopup->DeleteMenu(ID_MDI_NEW_VERT_GROUP, MF_BYCOMMAND);
}
if ((dwAllowedItems & AFX_MDI_CAN_MOVE_NEXT) == 0)
{
pPopup->DeleteMenu(ID_MDI_MOVE_TO_NEXT_GROUP, MF_BYCOMMAND);
}
if ((dwAllowedItems & AFX_MDI_CAN_MOVE_PREV) == 0)
{
pPopup->DeleteMenu(ID_MDI_MOVE_TO_PREV_GROUP, MF_BYCOMMAND);
}
if ((dwAllowedItems & AFX_MDI_CAN_BE_DOCKED) == 0)
{
pPopup->DeleteMenu(ID_MDI_TABBED_DOCUMENT, MF_BYCOMMAND);
}
CMFCPopupMenu* pPopupMenu = new CMFCPopupMenu;
pPopupMenu->SetAutoDestroy(FALSE);
pPopupMenu->Create(this, point.x, point.y, pPopup->GetSafeHmenu());
return TRUE;
}
CMDIFrameWndEx::OnShowPanes
Vom Framework aufgerufen, um Bereiche ein- oder auszublenden.
virtual BOOL OnShowPanes(BOOL bShow);
Parameter
bShow
[in] TRUE
um Bereiche anzuzeigen, FALSE
um Bereiche auszublenden.
Rückgabewert
TRUE
wenn sich der Zustand der Bereiche infolge des Aufrufens dieser Methode ändert, FALSE
wenn sich die Bereiche bereits im durch bShow
die Eigenschaft angegebenen Zustand befinden. Wenn z. B. die Bereiche ausgeblendet sind und bShow
ist, lautet FALSE
FALSE
der Rückgabewert .
Hinweise
Die Standardimplementierung entfernt die Symbolleiste aus dem Framefenster der obersten Ebene.
Wenn CDockingManager::m_bHideDockingBarsInContainerMode
dies der Fall ist TRUE
(standard), werden alle Andockbereiche ausgeblendet.
CMDIFrameWndEx::OnShowPopupMenu
Wird vom Framework aufgerufen, wenn es ein Popupmenü öffnet.
virtual BOOL OnShowPopupMenu(CMFCPopupMenu*);
Rückgabewert
TRUE
wenn das Popupmenü angezeigt werden soll. Andernfalls FALSE
. Die Standardimplementierung gibt TRUE
zurück.
Hinweise
Überschreiben Sie diese Methode, wenn Sie bei der Aktivierung des Popupmenüs eine spezielle Verarbeitung implementieren möchten. Wenn Sie beispielsweise normale Menüelemente in Farbmenüschaltflächen ändern möchten, richten Sie Reißleisten ein usw.
Bei der Standardimplementierung wird keine Aktion ausgeführt.
CMDIFrameWndEx::OnSizeMDIClient
Wird vom Framework aufgerufen, wenn sich die Größe des Client-MDI-Fensters ändert.
virtual void OnSizeMDIClient(
const CRect& rectOld,
const CRect& rectNew);
Parameter
rectOld
[in] Die aktuelle Größe des MDI-Clientfensters.
rectNew
[in] Die neue Größe des MDI-Clientfensters.
Hinweise
CMDIFrameWndEx::OnTearOffMenu
Wird vom Framework aufgerufen, wenn ein Menü mit abtrennbarer Leiste aktiviert wird.
virtual BOOL OnTearOffMenu(
CMFCPopupMenu* pMenuPopup,
CPane* pBar);
Parameter
pMenuPopup
[in] Ein Zeiger auf das Popupmenü.
pBar
[in] Ein Zeiger auf den Abrissbalken.
Rückgabewert
TRUE
damit das Popupmenü mit der Abreißleiste aktiviert werden kann; andernfalls FALSE
. Der Standardwert ist TRUE
.
Hinweise
Überschreiben Sie diese Funktion, wenn Sie ein spezielles Setup für den Reißbalken implementieren möchten. Bei der Standardimplementierung wird keine Aktion ausgeführt.
CMDIFrameWndEx::OnUpdateFrameMenu
Wird vom Framework aufgerufen, um das Framemenü zu aktualisieren.
virtual void OnUpdateFrameMenu(HMENU hMenuAlt);
Parameter
hMenuAlt
[in] Ein Handle zu einem Menü.
CMDIFrameWndEx::PaneFromPoint
Gibt den Andockbereich zurück, der den angegebenen Punkt enthält.
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
bool bExactBar,
CRuntimeClass* pRTCBarType) const;
CBasePane* PaneFromPoint(
CPoint point,
int nSensitivity,
DWORD& dwAlignment,
CRuntimeClass* pRTCBarType) const;
Parameter
point
[in] Der Punkt (in Bildschirmkoordinaten).
nSensitivity
[in] Das Fensterrechteck jedes eingecheckten Bereichs wird um diesen Wert in alle Richtungen vergrößert.
bExactBar
[in] Wenn TRUE
der nSensitivity
Parameter ignoriert wird.
pRTCBarType
[in] Wenn nicht, NULL
durchläuft die Methode nur die Bereiche des angegebenen Typs.
dwAlignment
[out] Wenn ein Bereich gefunden wird, gibt dieser Parameter an, welche Seite des Bereichs dem angegebenen Punkt am nächsten kommt.
Rückgabewert
Ein Zeiger auf einen Andockbereich oder NULL
wenn kein Steuerelement den durch point
.
Hinweise
Der Aufruf wird an die CDockingManager
Klasse umgeleitet. Weitere Informationen finden Sie unter CDockingManager::ControlBarFromPoint
.
CMDIFrameWndEx::RecalcLayout
Wird vom Framework aufgerufen, um das Layout des Framefensters neu zu berechnen.
virtual void RecalcLayout(BOOL bNotify = TRUE);
Parameter
bNotify
[in] Bestimmt, ob das aktive direkte Element für das Framefenster eine Benachrichtigung über die Layoutänderung erhält. Wenn TRUE
das Element benachrichtigt wird; andernfalls FALSE
.
Hinweise
Diese Methode setzt CFrameWnd::RecalcLayout außer Kraft.
CMDIFrameWndEx::RemovePaneFromDockManager
Hebt die Registrierung eines Bereichs auf und entfernt ihn aus dem Docking-Manager.
void RemovePaneFromDockManager(
CBasePane* pControlBar,
BOOL bDestroy,
BOOL bAdjustLayout,
BOOL bAutoHide,
CBasePane* pBarReplacement);
Parameter
pControlBar
[in] Ein Zeiger auf einen zu entfernenden Bereich.
bDestroy
[in] TRUE
um den entfernten Bereich zu zerstören. FALSE
sie nicht zu zerstören.
bAdjustLayout
[in] TRUE
um das Andocklayout sofort anzupassen. Wenn FALSE
die Anpassung nur auftritt, wenn ein Neuzeichnen-Ereignis aus anderen Gründen auftritt (der Benutzer ändert die Größe des Fensters, zieht den Hauptrahmen usw.).
bAutoHide
[in] TRUE
um den Bereich aus der Liste der Autohide-Bereiche zu entfernen. FALSE
um den Bereich aus der Liste der regulären Bereiche zu entfernen.
pBarReplacement
[in] Ein Zeiger auf einen Bereich, der den entfernten Bereich ersetzt.
Hinweise
Sie müssen jeden Bereich beim Docking-Manager registrieren, um am Dockinglayout teilzunehmen. Verwenden CMDIFrameWndEx::AddPane
oder CMDIFrameWndEx::InsertPane
registrieren Sie Bereiche.
Verwenden Sie diese Methode, wenn ein Bereich nicht mehr Teil des Andocklayouts des Rahmenfensters ist.
CMDIFrameWndEx::SaveMDIState
Speichert das aktuelle Layout von MDI-Registerkartengruppen und die Liste der zuvor geöffneten Dokumente.
virtual BOOL SaveMDIState(LPCTSTR lpszProfileName);
Parameter
lpszProfileName
[in] Gibt den Profilnamen an.
Rückgabewert
TRUE
wenn der Speichervorgang erfolgreich war; FALSE
wenn beim Speichern ein Fehler aufgetreten ist.
Hinweise
Gehen Sie wie folgt vor, um den Status von MDI-Registerkarten und -Gruppen und die Liste der geöffneten Dokumente zu laden oder zu speichern:
- Anruf
SaveMDIState
, wenn der Hauptframe geschlossen wird - Rufen Sie auf
CMDIFrameWndEx::LoadMDIState
, wenn der Hauptframe erstellt wird. Der empfohlene Ort für diesen Anruf ist, bevor der Hauptframe zum ersten Mal angezeigt wird. - Anrufen
CWinAppEx::EnableLoadWindowPlacement(FALSE);
vorpMainFrame->LoadFrame (IDR_MAINFRAME);
- Rufen Sie nach
LoadMDIState
,CWinAppEx::ReloadWindowPlacement(pMainFrame)
um den Hauptframe an der Position anzuzeigen, die in der Registrierung gespeichert wurde. - Überschreiben
GetDocumentName
Sie dieCMDIChildWndEx
abgeleitete Klasse, wenn Ihre Anwendung Dokumente anzeigt, die nicht als Dateien gespeichert sind. Die zurückgegebene Zeichenfolge wird in der Registrierung als Dokumentbezeichner gespeichert. Weitere Informationen finden Sie unterCMDIChildWndEx::GetDocumentName
. - Überschreiben
CMDIFrameWndEx::CreateDocumentWindow
, um Dokumente ordnungsgemäß zu erstellen, wenn sie aus der Registrierung geladen werden. Der Parameter istCreateDocumentWindow
die Zeichenfolge, dieGetDocumentName
zuvor zurückgegeben wurde.
Beispiel
Das folgende Beispiel zeigt die SaveMDIState
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
void CMainFrame::OnClose()
{
SaveMDIState(theApp.GetRegSectionPath());
CMDIFrameWndEx::OnClose();
}
CMDIFrameWndEx::SetPrintPreviewFrame
Legt das Fenster für den Seitenvorschaurahmen fest.
void SetPrintPreviewFrame(CFrameWnd* pWnd);
Parameter
pWnd
[in] Zeigen Sie auf ein Seitenansichtsrahmenfenster.
Hinweise
CMDIFrameWndEx::SetupToolbarMenu
Ändert ein Symbolleistenobjekt, indem Dummyelemente durch benutzerdefinierte Elemente ersetzt werden.
void SetupToolbarMenu(
CMenu& menu,
const UINT uiViewUserToolbarCmdFirst,
const UINT uiViewUserToolbarCmdLast);
Parameter
menu
[in] Ein Verweis auf ein CMenu
zu ändernde Klassenobjekt .
uiViewUserToolbarCmdFirst
[in] Gibt den ersten benutzerdefinierten Befehl an.
uiViewUserToolbarCmdLast
[in] Gibt den letzten benutzerdefinierten Befehl an.
CMDIFrameWndEx::ShowFullScreen
Schaltet den Hauptframe vom normalen Modus in den Vollbildmodus um.
void ShowFullScreen();
Hinweise
CMDIFrameWndEx::ShowPane
Blendet den angegebenen Bereich ein oder aus.
void ShowPane(
CBasePane* pBar,
BOOL bShow,
BOOL bDelay,
BOOL bActivate);
Parameter
pBar
[in] Zeigen Sie auf den Bereich, der angezeigt oder ausgeblendet werden soll.
bShow
[in] TRUE
um den Bereich anzuzeigen. FALSE
um den Bereich auszublenden.
bDelay
[in] TRUE
um die Neuberechnung des Andocklayouts zu verzögern. FALSE
um das Andocklayout sofort neu zu berechnen.
bActivate
[in] TRUE
um den Bereich als aktiv anzuzeigen. FALSE
um den Bereich als inaktiv anzuzeigen.
Hinweise
Rufen Sie diese Methode auf, um den Bereich ein- oder auszublenden. Verwenden Sie nicht ShowWindow
für Andockbereiche.
Beispiel
Das folgende Beispiel zeigt die ShowPane
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
void COutputList1::OnViewOutput()
{
CBasePane* pParentBar = DYNAMIC_DOWNCAST(CBasePane, GetOwner());
CFrameWndEx* pMainFrame = DYNAMIC_DOWNCAST(CFrameWndEx, GetTopLevelFrame());
if (pMainFrame != NULL && pParentBar != NULL)
{
pMainFrame->SetFocus();
pMainFrame->ShowPane(pParentBar, FALSE, FALSE, FALSE);
}
}
CMDIFrameWndEx::ShowWindowsDialog
Erstellt ein CMFCWindowsManagerDialog
Feld und öffnet es.
void ShowWindowsDialog();
Beispiel
Das folgende Beispiel zeigt die ShowWindowsDialog
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
void CMainFrame::OnWindowManager()
{
ShowWindowsDialog();
}
CMDIFrameWndEx::TabbedDocumentToControlBar
Konvertiert das angegebene Dokument im Registerkartenformat in einen Andockbereich.
virtual BOOL TabbedDocumentToControlBar(CMDIChildWndEx* pMDIChildWnd);
Parameter
pMDIChildWnd
Ein Zeiger auf das untergeordnete MDI-Fenster, das einen Andockbereich enthält.
Rückgabewert
TRUE
wenn die Methode erfolgreich war, FALSE
bei Einem Fehler.
Hinweise
Verwenden Sie diese Methode, um ein Dokument mit Registerkarten in einen Andockbereich zu konvertieren. Das Dokument mit Registerkarten muss mithilfe CMDIFrameWndEx::ControlBarToTabbedDocument
von .
Beispiel
Das folgende Beispiel zeigt die TabbedDocumentToControlBar
Verwendung im VisualStudioDemo-Beispiel: MFC Visual Studio Application.
void CMainFrame::OnMdiTabbedDocument()
{
CMDIChildWndEx* pMDIChild = DYNAMIC_DOWNCAST(CMDIChildWndEx, MDIGetActive());
if (pMDIChild == NULL)
{
ASSERT(FALSE);
return;
}
TabbedDocumentToControlBar(pMDIChild);
}
CMDIFrameWndEx::UpdateCaption
Vom Framework aufgerufen, um die Fensterrahmenbeschriftung zu aktualisieren.
void UpdateCaption();
Hinweise
CMDIFrameWndEx::UpdateMDITabbedBarsIcons
Legt das Symbol für jeden MDI-Registerkartenbereich fest.
void UpdateMDITabbedBarsIcons();
CMDIFrameWndEx::WinHelp
Wird vom Framework aufgerufen, um die WinHelp-Anwendung oder die Kontexthilfe zu initiieren.
virtual void WinHelp(
DWORD dwData,
UINT nCmd = HELP_CONTEXT);
Parameter
dwData
[in] Gibt Daten an, die für den von ihnen angegebenen nCmd
Hilfetyp erforderlich sind.
nCmd
[in] Gibt den Typ der angeforderten Hilfe an. Weitere Informationen zu den möglichen Werten und deren Auswirkungen auf den dwData
Parameter finden Sie unter WinHelp
.
Hinweise
Diese Methode überschreibt CWnd::WinHelp
.
Siehe auch
Hierarchiediagramm
Klassen
CMDIFrameWnd
-Klasse
CMDIChildWndEx
-Klasse