65.9K
CodeProject is changing. Read more.
Home

Collapsible, resizable and dockable XP style control bar

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.38/5 (25 votes)

Sep 23, 2003

viewsIcon

198599

downloadIcon

6635

Collapsible, resizable and dockable XP style control bar

Introduction

This class can be used to create a collapsible, resizable and dockable XP style control bar with very few lines of code.

The following files must be added to your project.

  • CollapsiblePanel.h
  • CollapsiblePanel.cpp

Resources

  • An empty dialog to define the initial control bar size.
  • A bitmap image for the logo of the button (if required).
  • A bitmap image for the expand icon of the button.
  • A dialog that will be displayed by the collapsible button.

Sample code

In your CMainFrame header file, define a variable of the type CCollapsiblePanel :

CCollapsiblePanel m_wndCollapsiblePanel;

In the CMainFrame::OnCreate() method, create the CDialog corresponding to the panels of the collapsible button :

CDialog* m_wndView1 = new CDialogButton1();

Set the Collapsible control bar (dockable, color and bitmaps.) :

m_wndCollapsiblePanel.CreateTheContainer(this, IDD_PANEL, true);
m_wndCollapsiblePanel.SetTheBkColor(RGB(100, 149, 237)); 
//m_wndCollapsiblePanel.SetDefaultSystemColor();
m_wndCollapsiblePanel.SetExpandBitmap(IDB_BITMAP_EXPAND);

Indicate if the program uses a toolbar or a status bar.

m_wndCollapsiblePanel.SetTheControlBar(&m_wndToolBar, &m_wndStatusBar);

Finally append the buttons.

m_wndCollapsiblePanel.AppendButton("Text Button 1", 
  IDB_BITMAP_DW, m_wndView1, IDD_DIALOG_BUTTON1);
m_wndCollapsiblePanel.AppendButton("Text Button 2", IDB_BITMAP_FW, 
  m_wndView2, IDD_DIALOG_BUTTON2);
m_wndCollapsiblePanel.AppendButton("text Button 3", NULL, NULL, NULL);