Bitmap progress control

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

CProgressST features:


  • Standard CProgressCtrl properties
  • Support for 256+ colors bitmaps
  • Support for negative ranges!
  • Easy to use!
  • Written in Visual C++ v5.0
  • Full source code included!
  • It’s free!



You are encouraged to use this class everywhere you want; there is no fee
required for CProgressST. Freely add modifications and/or fix bugs, but please,
send any of these to
SoftechSoftware!

How to integrate CProgressST in your application

  1. In your project include the following files:

    ProgressST.h
    ProgressST.cpp

  2. You also need a bitmap that will be displayed inside the progress bar.

    For example include in your project Cornicetta.bmp and call it IDB_CORNICETTA.

    With dialog editor create a progress bar called, for example, IDC_CORNICETTA
    and create a member variable for it:


    CProgressST m_prgCornicetta;

    Now attach the progress bar to CProgressST. In your OnInitDialog procedure:

    // Call the base method
    CDialog::OnInitDialog();

    // Create the IDC_CORNICETTA progress bar with bitmap
    m_prgCornicetta.SubclassDlgItem(IDC_CORNICETTA, this);

    The control will have the same default range and start position as in the base
    MFC class CProgressCtrl. These values can be modified using the same members of the
    base class as, for example, SetRange(…) or SetPos(…)
    At this moment OffsetPos(…) is not supported.

    By default the control will draw itself just like a normal progress bar.
    A bitmap can be assigned to get a progress bar showing it instead of normal
    standard blocks!

    This bitmap will be tiled to paint the necessary portion of the progress bar; it will not
    shrinked or enlarged in any manner.

  3. Assign a bitmap to the progress bar:


    // Assign bitmap
    m_prgCornicetta.SetBitmap(IDB_CORNICETTA);

    Your progress bar is now a CProgressST!

    Look inside the demo program to learn more about CProgressST. This is the best way!




CProgressST members





BOOL SetBitmap(UINT nBitmapId = NULL, BOOL bRepaint = TRUE);



Assign a bitmap to the progress bar



Input values:


  • nBitmapId

    The resource bitmap to use
  • bRepaint

    If TRUE the control is immediately redrawn

Return value:

Nonzero if successful; otherwise 0.



Example:


m_prgCornicetta.SetBitmap(IDB_CORNICETTA);

m_prgCornicetta.SetBitmap(); // To remove bitmap and draw as a standard progress bar





static const int GetVersionI()

static const char* GetVersionC()



Return CProgressST version



Example:


int nVer = CProgressST::GetVersionI(); // Divide by 10 to get actual version

char szVer[20];

strcpy(szVer, CProgressST::GetVersionC());




History


  • CProgressST v1.0

    First release


Things to do


  • Any suggestion?

Download demo project – 190 KB

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read