CExtStatusControlBar: Managing a Status Bar's Panes is Getting Easier | CodeGuru

CExtStatusControlBar: Managing a Status Bar’s Panes is Getting Easier

Click here for a larger image. Environment: VC++ Introduction The article introduces an enhanced version of the standard MFC status bar control. The new class should enable you to easily add/remove panes to/from the application’s status bar on the fly. The status bar’s panes may contain almost any control you need: buttons, edits, animations, progress […]

Written By
CodeGuru Staff
CodeGuru Staff
Jan 23, 2004
3 minute read
CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More



Click here for a larger image.

Environment: VC++

Introduction

The article introduces an enhanced version of the standard MFC status bar control. The new class should enable you to easily add/remove panes to/from the application’s status bar on the fly. The status bar’s panes may contain almost any control you need: buttons, edits, animations, progress bars, and so forth.

The class is partially based on the status bar presented in the freeware version of the Prof-UIS library available at https://www.codeguru.com/docking/profuis.html.

How to Use It

The CExtStatusControlBar class is simple to use. To add it to your project, please follow the steps below:

  1. Put its source files (CExtStatusControlBar.cpp and CExtStatusControlBar.h) into the proper folder and add their file names to your Visual Studio project.
  2. Include its header to the appropriate header file. If you plan to use CExtStatusControlBar in several places of your application, it’s reasonable to add it to your stdafx.h file.
  3. #include "CExtStatusControlBar.h"
  4. If you used CStatusBar, you should replace it with CExtStatusControlBar everywhere in the project.
  5. CExtStatusControlBar  m_wndStatusBar;
Advertisement

Sample

The StatusPanes sample project shows how to use the class in practice (including how to place controls into the control bar’s panes).

List of Methods

  • BOOL AddPane(UINT nID, int nIndex)
  • Inserts a new pane into the status bar.

    Parameters


    nID
    ID of the pane to be added.
    nIndex
    The index of the newly created pane.

    Return Value

    Nonzero if successful.

  • BOOL RemovePane(UINT nID)
  • Deletes a pane from the status bar.

    Parameters

    nID
    ID of the pane to be deleted.

    Return Value

    Nonzero if successful.

  • BOOL AddPaneControl(CWnd* pWnd, UINT nID, BOOL bAutoDestroy)
  • Inserts a control into a specified pane.

    Parameters


    pWnd
    Pointer to the control to be added.
    nID
    ID of the target pane.
    bAutoDestroy
    Specifies whether the control should be destroyed when the pane is removed.

    Return Value

    Nonzero if successful; otherwise, zero.

  • BOOL AddPaneControl(HWND hWnd, UINT nID, BOOL bAutoDestroy)
  • Inserts a control into a specified pane.

    Parameters


    hWnd
    Handle to the control to be added.
    nID
    ID of the target pane.
    bAutoDestroy
    Specifies whether the control should be destroyed when the pane is removed.

    Return Value

    Nonzero if successful.

  • void DisableControl( int nIndex, BOOL bDisable=TRUE)
  • Disables the control at a specified pane.

    Parameters


    nIndex
    Index of the pane.

    bDisable
    Flag specifying that the control is enabled if it is set to TRUE.
     

  • int GetPanesCount() const

    Retrieves the current number of panes in the status bar.


  • void SetPaneWidth(int nIndex, int nWidth)

    Sets a width in pixels for a specified pane.

    Parameters


    nIndex
    Index of the pane.
    nStyle
    Width to be set.

  • void SetPaneInfo(int nIndex, UINT nID, UINT nStyle, int cxWidth)

    Sets the specified pane to a new ID, style, and width.

    Parameters



    nIndex
    Index of the pane whose style is to be set.
    nID
    New ID for the pane.
    nStyle
    New style for the pane.
    cxWidth
    New width for the pane.

  • void SetPaneStyle(int nIndex, UINT nStyle)

    Set the style of a status bar’s pane. A pane’s style determines how the pane appears.

    Parameters



    nIndex
    Index of the pane whose style is to be set.
    nStyle
    Style of the pane whose style is to be set.

You can use this source absolutely free.

Reporting Bugs

Your questions, suggestions, and bug reports may be posted either to the forum below or to the forum at the Prof-UIS Web site.

Downloads

Download demo project – 14 Kb
Download source code – 41 Kb

CodeGuru Logo

CodeGuru covers topics related to Microsoft-related software development, mobile development, database management, and web application programming. In addition to tutorials and how-tos that teach programmers how to code in Microsoft-related languages and frameworks like C# and .Net, we also publish articles on software development tools, the latest in developer news, and advice for project managers. Cloud services such as Microsoft Azure and database options including SQL Server and MSSQL are also frequently covered.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.