Skip Navigation LinksBCGSoft > Support > Developer Area > Outlook Bars

Outlook bars

The BCGControlBar Library framework supports Outlook-style shortcut control bars. You can use these bars to enhance workspace management in your application.

The shortcuts bar has the following elements:

  • Caption - displays the currently selected page name
  • Page with shortcut buttons or embedded control
  • Splitter between page and page buttons
  • Page buttons with a page name and icon on left
  • Bottom-located toolbar with page small icons and options menu
BCGControlBar:Outlook-style shortcuts bar

The functionality of "outlook" control bars is provided by CBCGPOutlookBar class. To use this class please perform the following steps:

  1. Add outlook page large icons list to your application resources (the suggested icon size is 24x24). For example, the resource ID will be IDB_PAGES.
  2. Add outlook page small icons list (will be displayed on the bottom-located toolbar) to your application resources (the suggested icon size is 16x16). For example, the resource ID will be IDB_PAGES_SMALL.
  3. Prepare icons for each shortcut (IDI_SHORTCUT1, IDI_SHORTCUT1, ...).
  4. Add the following members to your CMainFrame class:
    CBCGPOutlookBar m_wndShortcutsBar;
    CBCGPOutlookBarPane m_wndShortcutsPane1;
    CBCGPOutlookBarPane m_wndShortcutsPane2;
    
  5. Initialize the shortcuts bar in CMainFrame::OnCreate by the following way:
CBCGPOutlookWnd::EnableAnimation();

const int nInitialWidth = 150;
const CString strCaption = _T("Shortcuts");

m_wndShortcutsBar.SetMode2003();

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
}

CBCGPOutlookWnd* pShortcutsBarContainer = DYNAMIC_DOWNCAST
    (CBCGPOutlookWnd, m_wndShortcutsBar.GetUnderlinedWindow());
if (pShortcutsBarContainer == NULL)
{
    TRACE0("Cannot get outlook bar container\n");
    return FALSE;
}

pShortcutsBarContainer->SetImageList(IDB_PAGES, 24);
pShortcutsBarContainer->SetToolbarImageList(IDB_PAGES_SMALL, 16);

// Create first page:
m_wndShortcutsPane1.Create(&m_wndShortcutsBar, dwDefaultToolbarStyle, ID_SHORTCUTS_PANE_1);

m_wndShortcutsPane1.SetOwner(this);
m_wndShortcutsPane1.EnableTextLabels();
m_wndShortcutsPane1.EnableDocking(CBRS_ALIGN_ANY);

m_wndShortcutsPane1.AddButton(theApp.LoadIcon(IDI_SHORTCUT1), _T("Shortcut 1"), ID_SHORTCUT_1);
m_wndShortcutsPane1.AddButton(theApp.LoadIcon(IDI_SHORTCUT2), _T("Shortcut 2"), ID_SHORTCUT_2);

pShortcutsBarContainer->AddTab(&m_wndShortcutsPane1, _T("Page 1"), 0, FALSE);
m_wndShortcutsPane1.EnableDocking(CBRS_ALIGN_ANY);

// Create second page:
m_wndShortcutsPane2.Create(&m_wndShortcutsBar,  dwDefaultToolbarStyle, ID_SHORTCUTS_PANE_2);

m_wndShortcutsPane2.SetOwner(this);
m_wndShortcutsPane2.EnableTextLabels();
m_wndShortcutsPane2.EnableDocking(CBRS_ALIGN_ANY);

m_wndShortcutsPane2.AddButton(theApp.LoadIcon(IDI_SHORTCUT3), _T("Shortcut 3"), ID_SHORTCUT_3);
m_wndShortcutsPane2.AddButton(theApp.LoadIcon(IDI_SHORTCUT4), _T("Shortcut 4"), ID_SHORTCUT_4);

pShortcutsBarContainer->AddTab(&m_wndShortcutsPane2, _T("Page 2"), 1, FALSE);

Back to the Developer Area