CMFCOutlookBar Class
This topic is included for completeness. For more detail see the source code located in the VC\atlmfc\src\mfc folder of your Visual Studio installation.
A tabbed pane with the visual appearance of the Navigation Pane in Microsoft Outlook 2000 or Outlook 2003. The CMFCOutlookBar object contains a CMFCOutlookBarTabCtrl Class object and a series of tabs. The tabs can be either CMFCOutlookBarPane Class objects or CWnd-derived objects. To the user, the Outlook bar appears as a series of buttons and a display area. When the user clicks a button, the corresponding control or button pane is displayed.
class CMFCOutlookBar : public CBaseTabbedPane
Members
Public Constructors
Name |
Description |
---|---|
CMFCOutlookBar::CMFCOutlookBar |
Default constructor. |
CMFCOutlookBar::~CMFCOutlookBar |
Destructor. |
Public Methods
Name |
Description |
---|---|
(Overrides CBaseTabbedPane::AllowDestroyEmptyTabbedPane.) |
|
Determines whether another pane can be docked to the Outlook bar pane. (Overrides CDockablePane::CanAcceptPane.) |
|
Determines whether the caption for the tabbed pane displays the same text as the active tab. (Overrides CBaseTabbedPane::CanSetCaptionTextToTabName.) |
|
Creates the Outlook bar control. |
|
Creates a custom Outlook bar tab. |
|
CMFCOutlookBar::CreateObject |
Used by the framework to create a dynamic instance of this class type. |
Determines whether a user can dock a control bar at the outer edge of the Outlook bar. |
|
Floats a pane, but only if the pane currently resides in a detachable tab. (Overrides CBaseTabbedPane::FloatTab.) |
|
Returns the font of the text on the buttons of the Outlook bar. |
|
CMFCOutlookBar::GetDockingStatus |
Called by the framework to manage docking behavior. (Overrides CDockablePane::GetDockingStatus.) |
CMFCOutlookBar::GetPaneName |
Gets the window text for the pane. (Overrides CPane::GetPaneName.) |
Returns the size and position of the tab areas on the Outlook bar. (Overrides CBaseTabbedPane::GetTabArea.) |
|
CMFCOutlookBar::GetThisClass |
Used by the framework to obtain a pointer to the CRuntimeClass object that is associated with this class type. |
Determines whether the behavior of the Outlook bar mimics that of Microsoft Office Outlook 2003 (see Remarks). |
|
CMFCOutlookBar::LoadState |
Called by the framework to load state from the registry. (Overrides CBaseTabbedPane::LoadState.) |
|
|
|
|
|
|
Removes a custom Outlook bar tab. |
|
CMFCOutlookBar::SaveState |
Called by the framework to save the pane's state to the registry. (Overrides CBaseTabbedPane::SaveState.) |
Sets the font of the text on the buttons of the Outlook bar. |
|
Specifies whether the behavior of the Outlook bar mimics that of Outlook 2003 (see Remarks). |
Remarks
For an example of an Outlook bar, see the OutlookDemo Sample: MFC OutlookDemo Application.
Implementing the Outlook Bar
To use the CMFCOutlookBar control in your application, follow these steps:
Embed a CMFCOutlookBar object into the main frame window class.
class CMainFrame : public CMDIFrameWnd { ... CMFCOutlookBar m_wndOutlookBar; CMFCOutlookBarPane m_wndOutlookPane; ... };
When processing the WM_CREATE message in the main frame, call the CMFCOutlookBar::Create method to create the Outlook bar tab control.
m_wndOutlookBar.Create (_T("Shortcuts"), this, CRect (0, 0, 100, 100), ID_VIEW_OUTLOOKBAR, WS_CHILD | WS_VISIBLE | CBRS_LEFT);
Obtain a pointer to the underlying CMFCOutlookBarTabCtrl by using CBaseTabbedPane::GetUnderlyingWindow.
CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*) m_wndOutlookBar.GetUnderlyingWindow ();
Create a CMFCOutlookBarPane Class object for each tab that contains buttons.
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);
Call CMFCBaseTabCtrl::AddTab to add each new tab. Set the bDetachable parameter to FALSE to make a page non-detachable. Or, use CMFCOutlookBarTabCtrl::AddControl to add detachable pages.
pOutlookBar->AddTab (&m_wndOutlookPane, "General", (UINT) -1, TRUE);
To add a CWnd-derived control (for example, CMFCShellTreeCtrl Class) as a tab, create the control and call CMFCBaseTabCtrl::AddTab to add it to the Outlook bar.
Note
You should use unique control IDs for each CMFCOutlookBarPane Class object and for each CWnd-derived object.
To dynamically add or delete new pages at runtime, use CMFCOutlookBar::CreateCustomPage and CMFCOutlookBar::RemoveCustomPage.
Outlook 2003 Mode
In Outlook 2003 mode, the tab buttons are positioned at the bottom of the Outlook bar pane. When there is not sufficient room to display the buttons, they are displayed as icons in a toolbar-like area along the bottom of the pane.
Use CMFCOutlookBar::SetMode2003 to enable Outlook 2003 mode. Use CMFCOutlookBarTabCtrl::SetToolbarImageList to set the bitmap that contains the icons that are displayed on the bottom of the Outlook bar. The icons in the bitmap must be ordered by tab index.
Inheritance Hierarchy
Requirements
Header: afxoutlookbar.h