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:
Betten Sie ein
CMFCOutlookBar
-Objekt in die Hauptframe-Fensterklasse ein.class CMainFrame : public CMDIFrameWnd { // ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; // ... };
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);
Rufen Sie mithilfe von CBaseTabbedPane::GetUnderlyingWindow einen Zeiger auf die zugrunde liegende
CMFCOutlookBarTabCtrl
Datei ab.CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
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);
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);
Um ein abgeleitetes
CWnd
Steuerelement (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 CWnd
abgeleitete 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
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 Create
Sie 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