Macintosh-like Progress Control | CodeGuru

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 […]

Written By
CodeGuru Staff
CodeGuru Staff
Jan 11, 2000
1 minute read
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

    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.