Macintosh-like Progress Control

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