Macintosh-like Progress Control

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

Environment: Windows NT4 SP4, Visual C++ 6

This image shows an example of my CMacProgressCtrl and CMacSliderCtrl. For more
information on the CMacSliderCtrl, please refer to
this article.

This class is my attempt at recreating the progress control of the Macintosh. This
control (CMacProgressCtrl) allows you to change its colors as well as set an “indeterminate
state” (similar to the “barber pole” look of progress controls on the Mac). This state
can be used to indicate to the user that the length of time to finish the current
operation is unknown.

Public Member Functions


void SetColor(COLORREF crColor)
COLORREF GetColor()
void SetIndeterminate(BOOL bIndeterminate = TRUE)
BOOL GetIndeterminate()

Steps to add a CMacProgressCtrl to a dialog

  • Add the desired files to your project.
  • Add the #include directive to the header file of your dialog class.
  • Add a progress control to your dialog in the resource editor.
  • Use ClassWizard to add a member variable of type CMacProgressCtrl for
    the corresponding controls you just added. If the CMacProgressCtrl classe
    is not in the Variable Type list, choose CProgressCtrl, and manually change
    the types in the header file of your dialog class.
  • Downloads

    Special Note: The demo and source files are the sames available in the
    CMacSliderCtrl article.

    Download demo project – 35 Kb
    Download source – 11 Kb

    More by Author

    Get the Free Newsletter!

    Subscribe to Developer Insider for top news, trends & analysis

    Must Read