Freigeben über


CMFCOutlookBar-Klasse

Eine Seite im Registerformat mit dem Aussehen des Navigationsbereichs in Microsoft Outlook 2000 oder Outlook 2003. Das CMFCOutlookBar Objekt enthält ein CMFCOutlookBarTabCtrl Class-Objekt und eine Reihe von Registerkarten. Die Registerkarten können entweder CMFCOutlookBarPane Class-Objekte oder CWnd-abgeleitete Objekte sein. Für den Benutzer wird die Outlook-Leiste in Form einer Reihe von Schaltflächen und eines Anzeigebereichs dargestellt. Wenn der Benutzer auf eine Schaltfläche klickt, wird der entsprechende Steuerelement- oder Schaltflächenbereich angezeigt.

Syntax

class CMFCOutlookBar : public CBaseTabbedPane

Member

Öffentliche Konstruktoren

Name Beschreibung
CMFCOutlookBar::CMFCOutlookBar Der Standardkonstruktor.
CMFCOutlookBar::~CMFCOutlookBar Destruktor.

Öffentliche Methoden

Name Beschreibung
CMFCOutlookBar::AllowDestroyEmptyTabbedPane Gibt an, ob ein leerer Registerkartenbereich zerstört werden kann. (Außerkraftsetzungen CBaseTabbedPane::AllowDestroyEmptyTabbedPane.)
CMFCOutlookBar::CanAcceptPane Bestimmt, ob ein anderer Bereich an den Outlook-Leistenbereich angedockt werden kann. (Überschreibt CDockablePane::CanAcceptPane.)
CMFCOutlookBar::CanSetCaptionTextToTabName Bestimmt, ob die Beschriftung für den Registerkartenbereich denselben Text wie die aktive Registerkarte anzeigt. (Überschreibt CBaseTabbedPane::CanSetCaptionTextToTabName.)
CMFCOutlookBar::Create Erstellt das Outlook-Leistensteuerelement.
CMFCOutlookBar::CreateCustomPage Erstellt eine benutzerdefinierte Outlook-Leistenregisterkarte.
CMFCOutlookBar::CreateObject Wird vom Framework verwendet, um eine dynamische Instanz dieses Klassentyps zu erstellen.
CMFCOutlookBar::D oesAllowDynInsertBefore Bestimmt, ob ein Benutzer eine Steuerelementleiste am äußeren Rand der Outlook-Leiste andocken kann.
CMFCOutlookBar::FloatTab Floats a pane, but only if the pane currently resides in a detachable tab. (Overrides CBaseTabbedPane::FloatTab.)
CMFCOutlookBar::GetButtonsFont Gibt die Schriftart des Texts auf den Schaltflächen der Outlook-Leiste zurück.
CMFCOutlookBar::GetTabArea Gibt die Größe und Position der Registerkartenbereiche auf der Outlook-Leiste zurück. (Außerkraftsetzungen CBaseTabbedPane::GetTabArea.)
CMFCOutlookBar::GetThisClass Wird vom Framework verwendet, um einen Zeiger auf das CRuntimeClass -Objekt abzurufen, das diesem Klassentyp zugeordnet ist.
CMFCOutlookBar::IsMode2003 Bestimmt, ob das Verhalten der Outlook-Leiste die von Microsoft Office Outlook 2003 nachahmt (siehe Hinweise).
CMFCOutlookBar::OnAfterAnimation Wird von CMFCOutlookBarTabCtrl::SetActiveTab aufgerufen, nachdem die aktive Registerkarte mithilfe der Animation festgelegt wurde.
CMFCOutlookBar::OnBeforeAnimation Wird von CMFCOutlookBarTabCtrl::SetActiveTab aufgerufen, bevor eine Registerkartenseite mit Animation als aktive Registerkarte festgelegt wird.
CMFCOutlookBar::OnScroll Wird vom Framework aufgerufen, wenn die Outlook-Leiste nach oben oder unten scrollt.
CMFCOutlookBar::RemoveCustomPage Entfernt eine benutzerdefinierte Registerkarte der Outlook-Leiste.
CMFCOutlookBar::SetButtonsFont Legt die Schriftart des Texts auf den Schaltflächen der Outlook-Leiste fest.
CMFCOutlookBar::SetMode2003 Gibt an, ob das Verhalten der Outlook-Leiste die von Outlook 2003 nachahmt (siehe Hinweise).

Hinweise

Ein Beispiel für eine Outlook-Leiste finden Sie im OutlookDemo-Beispiel: MFC OutlookDemo-Anwendung.

Implementieren der Outlook-Leiste

Befolgen Sie folgende Schritte, um das CMFCOutlookBar-Steuerelement in Ihrer Anwendung zu verwenden:

  1. Betten Sie ein CMFCOutlookBar-Objekt in die Hauptframe-Fensterklasse ein.

    class CMainFrame : public CMDIFrameWnd
    {
        // ...
        CMFCOutlookBar m_wndOutlookBar;
        CMFCOutlookBarPane m_wndOutlookPane;
        // ...
    };
    
  2. Rufen Sie beim Verarbeiten der WM_CREATE Nachricht im Hauptframe die CMFCOutlookBar::Create-Methode auf, um das Registerkartensteuerelement der Outlook-Leiste zu erstellen.

    m_wndOutlookBar.Create (_T("Shortcuts"),
        this,
        CRect (0, 0, 100, 100),
        ID_VIEW_OUTLOOKBAR,
        WS_CHILD | WS_VISIBLE | CBRS_LEFT);
    
  3. Rufen Sie mithilfe von CBaseTabbedPane::GetUnderlyingWindow einen Zeiger auf die zugrunde liegende CMFCOutlookBarTabCtrl Datei ab.

    CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
    
  4. Erstellen Sie ein CMFCOutlookBarPane Class - Objekt für jede Registerkarte, die Schaltflächen enthält.

    m_wndOutlookPane.Create(&m_wndOutlookBar,
        AFX_DEFAULT_TOOLBAR_STYLE,
        ID_OUTLOOK_PANE_GENERAL,
        AFX_CBRS_FLOAT | AFX_CBRS_RESIZE);
    
    // make the Outlook pane detachable (enable docking)
    m_wndOutlookPane.EnableDocking(CBRS_ALIGN_ANY);
    
    // add buttons
    m_wndOutlookPane.AddButton(theApp.LoadIcon (IDR_MAINFRAME),
        "About",
        ID_APP_ABOUT);
    
    m_wndOutlookPane.AddButton (theApp.LoadIcon (IDR_CUSTOM_OPEN_ICON),
        "Open",
        ID_FILE_OPEN);
    
  5. Rufen Sie CMFCOutlookBarTabCtrl::AddTab auf, um jede neue Registerkarte hinzuzufügen. Legen Sie den bDetachable-Parameter auf FALSE fest, damit eine Seite nicht getrennt werden kann. Oder verwenden Sie CMFCOutlookBarTabCtrl::AddControl , um trennbare Seiten hinzuzufügen.

    pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
    
  6. Um ein abgeleitetes CWndSteuerelement (z . B. CMFCShellTreeCtrl Class) als Registerkarte hinzuzufügen, erstellen Sie das Steuerelement, und rufen Sie CMFCOutlookBarTabCtrl::AddTab auf, um es der Outlook-Leiste hinzuzufügen.

Hinweis

Sie sollten eindeutige Steuerelement-IDs für jedes CMFCOutlookBarPane Class-Objekt und für jedes CWndabgeleitete Objekt verwenden.

Um neue Seiten zur Laufzeit dynamisch hinzuzufügen oder zu löschen, verwenden Sie CMFCOutlookBar::CreateCustomPage und CMFCOutlookBar::RemoveCustomPage.

Outlook 2003-Modus

Im Outlook 2003-Modus werden die Registerkartenschaltflächen am unteren Rand des Outlook-Leistenbereichs positioniert. Wenn nicht genügend Platz zum Anzeigen der Schaltflächen vorhanden ist, werden sie als Symbole in einem symbolleistenähnlichen Bereich am unteren Rand des Bereichs angezeigt.

Verwenden Sie CMFCOutlookBar::SetMode2003, um den Outlook 2003-Modus zu aktivieren. Verwenden Sie CMFCOutlookBarTabCtrl::SetToolbarImageList , um die Bitmap festzulegen, die die Symbole enthält, die unten auf der Outlook-Leiste angezeigt werden. Die Symbole in der Bitmap müssen nach Registerkartenindex sortiert werden.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CBasePane

CPane

CDockablePane

CBaseTabbedPane

CMFCOutlookBar

Anforderungen

Kopfzeile: afxoutlookbar.h

CMFCOutlookBar::AllowDestroyEmptyTabbedPane

Gibt an, ob ein leerer Registerkartenbereich zerstört werden kann.

virtual BOOL AllowDestroyEmptyTabbedPane() const;

Rückgabewert

TRUE, wenn ein leerer Registerkartenbereich zerstört werden kann; andernfalls FALSE. Die Standardimplementierung gibt immer TRUE zurück.

Hinweise

Wenn ein leerer Registerkartenbereich nicht zerstört werden kann, blendet das Framework ihn stattdessen aus.

CMFCOutlookBar::CanAcceptPane

Bestimmt, ob ein anderer Bereich an den Outlook-Leistenbereich angedockt werden kann.

virtual BOOL CanAcceptPane(const CBasePane* pBar) const;

Parameter

pBar
[in] Ein Zeiger auf einen anderen Bereich, der an diesen Bereich angedockt wird.

Rückgabewert

TRUE, wenn ein anderer Bereich an den Outlook-Leistenbereich angedockt werden kann; andernfalls FALSE.

Hinweise

Wenn sich die Outlook-Leiste im Outlook 2003-Modus befindet, wird das Andocken nicht unterstützt, sodass der Rückgabewert FALSCH ist.

Wenn der pBar-Parameter NULL ist, gibt diese Methode FALSE zurück.

Andernfalls verhält sich diese Methode wie die Basismethode CBasePane::CanAcceptPane, mit der Ausnahme, dass eine Outlook-Leiste, auch wenn das Andocken nicht aktiviert ist, trotzdem eine andere Outlook-Leiste aktivieren kann, damit sie angedockt wird.

CMFCOutlookBar::CanSetCaptionTextToTabName

Bestimmt, ob die Beschriftung für den Registerkartenbereich denselben Text wie die aktive Registerkarte anzeigt.

virtual BOOL CanSetCaptionTextToTabName() const;

Rückgabewert

TRUE, wenn die Beschriftung des Fensters der Outlook-Leiste automatisch auf den Text der aktiven Registerkarte festgelegt wird; andernfalls FALSE.

Hinweise

Verwenden Sie CBaseTabbedPane::EnableSetCaptionTextToTabName , um diese Funktionalität zu aktivieren oder zu deaktivieren.

Im Outlook 2003-Modus ist diese Einstellung immer aktiviert.

CMFCOutlookBar::Create

Erstellt das Outlook-Leistensteuerelement.

virtual BOOL Create(
    LPCTSTR lpszCaption,
    CWnd* pParentWnd,
    const RECT& rect,
    UINT nID,
    DWORD dwStyle,
    DWORD dwControlBarStyle=AFX_CBRS_RESIZE,
    CCreateContext* pContext=NULL);

Parameter

lpszCaption
[in] Gibt die Fensterbeschriftung an.

pParentWnd
[in] Gibt einen Zeiger auf ein übergeordnetes Fenster an. Er darf nicht NULL sein.

rect
[in] Gibt die Größe und Position der Outlook-Leiste in Pixeln an.

Nid
[in] Gibt die Steuerelement-ID an. Muss sich von anderen Steuerelement-IDs unterscheiden, die in der Anwendung verwendet werden.

dwStyle
[in] Gibt die gewünschte Steuerelementleistenart an. Mögliche Werte finden Sie unter "Fensterformatvorlagen".

dwControlBarStyle
[in] Gibt die speziellen bibliotheksdefinierten Formatvorlagen an.

pContext
[in] Kontext erstellen.

Rückgabewert

Nonzero, wenn die Methode erfolgreich ist; andernfalls 0.

Hinweise

Sie erstellen ein CMFCOutlookBar Objekt in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, und rufen CreateSie dann auf, wodurch das Steuerelement der Outlook-Leiste erstellt und an das CMFCOutlookBar Objekt angefügt wird.

Siehe CBasePane::CreateEx für die Liste der verfügbaren bibliotheksdefinierten Formatvorlagen, die von dwControlBarStyle angegeben werden sollen.

Beispiel

Im folgenden Beispiel wird die Verwendung der Create Methode der CMFCOutlookBar Klasse veranschaulicht. Dieser Codeausschnitt ist Teil des Outlook Multi Views-Beispiels.

CMFCOutlookBar m_wndShortcutsBar;
// int nInitialWidth
// CString strCaption
if (!m_wndShortcutsBar.Create(strCaption, this,
                              CRect(0, 0, nInitialWidth, nInitialWidth),
                              ID_VIEW_OUTLOOKBAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT))
{
   TRACE0("Failed to create outlook bar\n");
   return FALSE; // fail to create
}

CMFCOutlookBar::CreateCustomPage

Erstellt eine benutzerdefinierte Outlook-Leistenregisterkarte.

CMFCOutlookBarPane* CreateCustomPage(
    LPCTSTR lpszPageName,
    BOOL bActivatePage=TRUE,
    DWORD dwEnabledDocking=CBRS_ALIGN_ANY,
    BOOL bEnableTextLabels=TRUE);

Parameter

lpszPageName
[in] Die Seitenbezeichnung.

bActivatePage
[in] Wenn WAHR, wird die Seite beim Erstellen aktiv.

dwEnabledDocking
[in] Eine Kombination aus CBRS_ALIGN_ Flags, die die aktivierten Andockseiten angibt, wenn die Seite getrennt wird.

bEnableTextLabels
[in] Wenn WAHR, werden die Textbeschriftungen für die Schaltflächen aktiviert, die sich auf der Seite befinden.

Rückgabewert

Ein Zeiger auf die neu erstellte Seite oder NULL, wenn die Erstellung fehlgeschlagen ist.

Hinweise

Verwenden Sie diese Methode, um benutzern das Erstellen benutzerdefinierter Outlook-Leistenseiten zu ermöglichen. Sie können bis zu 100 Seiten pro Anwendung erstellen. Die Seitensteuerelement-IDs beginnen mit 0xF000. Die Erstellung schlägt fehl, wenn die Gesamtanzahl der benutzerdefinierten Outlook-Leistenseiten 100 überschreitet.

Verwenden Sie CMFCOutlookBar::RemoveCustomPage , um benutzerdefinierte Seiten zu löschen.

CMFCOutlookBar::D oesAllowDynInsertBefore

Gibt an, ob ein Benutzer einen Bereich am äußeren Rand der Outlook-Leiste andocken kann.

DECLARE_MESSAGE_MAP virtual BOOL DoesAllowDynInsertBefore() const;

Rückgabewert

Die Standardimplementierung gibt FALSE zurück.

Hinweise

Das Framework ruft die DoesAllowDynInsertBefore Methode auf, wenn sie nach einer Position sucht, um einen dynamischen Bereich anzudocken. Wenn die Funktion FALSCH zurückgibt, lässt das Framework das Andocken eines dynamischen Bereichs an den äußeren Rändern des Bereichs nicht zu.

In der Regel erstellen Sie eine Outlook-Leiste als statisches, nicht unverankertes Steuerelement. Sie können diese Funktion in einer abgeleiteten Klasse überschreiben und TRUE zurückgeben, um dieses Verhalten zu ändern.

Hinweis

Da dynamische Bereiche den Status angedockter statischer Bereiche beim Andocken überprüfen, sollten Sie dynamische Bereiche nach Möglichkeit nach statischen Bereichen andocken.

CMFCOutlookBar::FloatTab

Floats a pane.

virtual BOOL FloatTab(
    CWnd* pBar,
    int nTabID,
    AFX_DOCK_METHOD dockMethod,
    BOOL bHide);

Parameter

pBar
[in] Ein Zeiger auf den Bereich, der schwebt.

nTabID
[in] Der nullbasierte Index der zu gleitenden Registerkarte.

dockMethod
[in] Gibt die Methode an, die zum Gleiten des Bereichs verwendet werden soll. Weitere Informationen finden Sie unter CBaseTabbedPane::FloatTab.

bHide
[in] TRUE, um den Bereich vor dem Unverankerten auszublenden; andernfalls FALSE. Im Gegensatz zur Basisklassenversion dieser Methode verfügt dieser Parameter nicht über einen Standardwert.

Rückgabewert

TRUE, wenn der Bereich schwebte; andernfalls FALSE.

Hinweise

Diese Methode ist wie CBaseTabbedPane::FloatTab , mit der Ausnahme, dass die letzte verbleibende Registerkarte in einem Outlook-Leiste-Steuerelement nicht zum Gleiten aktiviert wird.

CMFCOutlookBar::GetButtonsFont

Gibt die Schriftart des Texts auf den Seitenschaltflächenregistern der Outlook-Leiste zurück.

CFont* GetButtonsFont() const;

Rückgabewert

Ein Zeiger auf das Schriftartobjekt, das zum Anzeigen von Text auf Registerkarten der Outlook-Leiste verwendet wird.

Hinweise

Verwenden Sie diese Funktion, um die Schriftart abzurufen, die zum Anzeigen des Texts auf den Registerkarten der Outlook-Seite verwendet wird. Sie können die Schriftart durch Aufrufen von CMFCOutlookBar::SetButtonsFont festlegen.

CMFCOutlookBar::GetTabArea

Bestimmt die Größe und Position der Registerkartenbereiche auf der Outlook-Leiste.

virtual void GetTabArea(
    CRect& rectTabAreaTop,
    CRect& rectTabAreaBottom) const;

Parameter

rectTabAreaTop
[out] Enthält die Größe und Position (in den Clientkoordinaten) des oberen Registerkartenbereichs, wenn die Funktion zurückgegeben wird.

rectTabAreaBottom
[out] Enthält die Größe und Position (in den Clientkoordinaten) des unteren Registerkartenbereichs, wenn die Funktion zurückgegeben wird.

Hinweise

Das Framework ruft diese Methode auf, um den Typ des Andockens an den Zielbereich zu bestimmen. Wenn das Framework feststellt, dass der Benutzer den Bereich über den Registerkartenbereich des Zielbereichs zieht, versucht es, den ersten Bereich als neue Registerkarte des Zielbereichs hinzuzufügen. Andernfalls wird versucht, den ersten Bereich an einer geeigneten Seite des Zielbereichs anzudocken. Das Framework erstellt einen neuen Container mit einem Schieberegler, um den zusätzlichen angedockten Bereich aufzunehmen.

Die Standardimplementierung gibt GetTabArea den gesamten Clientbereich der Outlook-Leiste zurück, wenn die Outlook-Leiste statisch ist, d. h., wenn die Outlook-Leiste nicht schweben kann. Andernfalls wird der Bereich zurückgegeben, in dem die Seitenschaltflächen oben und unten im Outlook-Leistensteuerelement angezeigt werden.

Überschreiben Sie diese Methode in der Klasse, die von CMFCOutlookBar dieser Methode abgeleitet wurde, um dieses Verhalten zu ändern.

CMFCOutlookBar::IsMode2003

Gibt an, ob das Verhalten der Outlook-Leiste die von Microsoft Office Outlook 2003 nachahmt.

BOOL IsMode2003() const;

Rückgabewert

Nonzero, wenn die Outlook-Leiste im Microsoft Office 2003-Modus ausgeführt wird; andernfalls 0.

Hinweise

Sie können diesen Modus mithilfe von CMFCOutlookBar::SetMode2003 aktivieren.

CMFCOutlookBar::OnAfterAnimation

Wird von CMFCOutlookBarTabCtrl::SetActiveTab aufgerufen, nachdem die aktive Registerkarte mithilfe der Animation festgelegt wurde.

virtual void OnAfterAnimation(int nPage);

Parameter

nPage
[in] Der nullbasierte Index der Registerkartenseite, die aktiviert wurde.

Hinweise

Der visuelle Effekt der Einstellung der aktiven Registerkarte hängt davon ab, ob Sie animation aktiviert haben. Weitere Informationen finden Sie unter CMFCOutlookBarTabCtrl::EnableAnimation.

CMFCOutlookBar::OnBeforeAnimation

Wird von CMFCOutlookBarTabCtrl::SetActiveTab aufgerufen, bevor eine Registerkartenseite mit Animation als aktive Registerkarte festgelegt wird.

virtual BOOL OnBeforeAnimation(int nPage);

Parameter

nPage
[in] Der nullbasierte Index der Registerkartenseite, die aktiv werden soll.

Rückgabewert

Gibt TRUE zurück, wenn animation beim Festlegen der neuen aktiven Registerkarte verwendet werden soll, oder FALSE, wenn die Animation deaktiviert werden soll.

Hinweise

CMFCOutlookBar::OnScroll

Wird vom Framework aufgerufen, wenn die Outlook-Leiste nach oben oder unten scrollt.

virtual void OnScroll(BOOL bDown);

Parameter

bDown
[in] TRUE, wenn die Outlook-Leiste nach unten scrollt, oder FALSE, wenn der Bildlauf nach oben erfolgt.

Hinweise

CMFCOutlookBar::RemoveCustomPage

Entfernt eine benutzerdefinierte Registerkartenseite der Outlook-Leiste.

BOOL RemoveCustomPage(
    UINT uiPage,
    CMFCOutlookBarTabCtrl* pTargetWnd);

Parameter

uiPage
[in] Nullbasierter Index der Seite im übergeordneten Outlook-Fenster.

pTargetWnd
[in] Zeigen Sie auf das übergeordnete Outlook-Fenster.

Rückgabewert

Nonzero, wenn die benutzerdefinierte Seite erfolgreich entfernt wurde; andernfalls 0.

Hinweise

Rufen Sie diese Funktion auf, um benutzerdefinierte Seiten zu löschen. Wenn die Seite entfernt wird, wird die Steuerelement-ID an den Pool der verfügbaren IDs zurückgegeben.

Sie müssen einen Zeiger auf CMFCOutlookBarTabCtrl Class-Objekt bereitstellen, in dem sich die zu entfernende Seite befindet. Beachten Sie, dass ein Benutzer trennbare Seiten zwischen verschiedenen Outlook-Leisten verschieben kann, aber die Informationen zu einer benutzerdefinierten Seite befinden sich im Outlook-Leistenobjekt, für das Sie CMFCOutlookBar::CreateCustomPage aufgerufen haben.

Verwenden Sie CBaseTabbedPane::GetUnderlyingWindow , um einen Zeiger auf das Outlook-Fenster abzurufen.

CMFCOutlookBar::SetButtonsFont

Legt die Schriftart des Texts auf den Schaltflächen der Outlook-Leiste fest.

void SetButtonsFont(
    CFont* pFont,
    BOOL bRedraw=TRUE);

Parameter

pFont
[in] Gibt die neue Schriftart an.

bRedraw
[in] Wenn TRUE, wird die Outlook-Leiste neu gezeichnet.

Hinweise

Verwenden Sie diese Methode, um eine Schriftart für den Text festzulegen, der auf den Schaltflächen der Registerkartenseite von Outlook angezeigt wird.

CMFCOutlookBar::SetMode2003

Gibt an, ob das Verhalten der Outlook-Leiste die von Outlook 2003 nachahmt.

void SetMode2003(BOOL bMode2003=TRUE);

Parameter

bMode2003
[in] Wenn WAHR, ist der Office 2003-Modus aktiviert.

Hinweise

Verwenden Sie diese Funktion, um den Office 2003-Modus zu aktivieren oder zu deaktivieren. In diesem Modus verfügt die Outlook-Leiste über eine zusätzliche Symbolleiste mit einer Anpassungsschaltfläche. Das Verhalten der Outlook-Leiste entspricht dem Verhalten der Outlook-Leiste in Microsoft Office 2003.

Dieser Modus ist standardmäßig deaktiviert.

Hinweis

Diese Funktion muss vor CMFCOutlookBar::Create aufgerufen werden.

Siehe auch

Hierarchiediagramm
Klassen
CBaseTabbedPane-Klasse
CMFCOutlookBarTabCtrl-Klasse
CMFCOutlookBarPane-Klasse