HOWTO: Create a Progress Bar on the Status Bar

ID: Q142202


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), included with:
    • Microsoft Visual C++, 32-bit Editions, versions 4.0, 5.0, 6.0


SUMMARY

There are times when you may want to show the progress of a process on the status bar. Developer Studio does this when loading a project. You can implement this by using CStatusBar and CProgressCtrl.


MORE INFORMATION

A default AppWizard-generated MFC application has a class (CMainFrame) that contains a member variable m_wndStatusBar of type CStatusBar. The following sample code uses this member variable as the parent of a CProgressCtrl, which will be positioned over the first pane of m_wndStatusBar. First, the CProgressCtrl is created. Then, the sample code simulates a lengthy process using the Sleep function in a for loop.

Sample Code


   /* Compile options needed: default
   */ 

   // This is a menu option handler that takes a long period of time
   void CMainFrame::OnLengthyProcess()
   {
       // Create the CProgressCtrl as a child of the status bar positioned
       // over the first pane.

       RECT rc;
       m_wndStatusBar.GetItemRect (0, &rc);
       CProgressCtrl wndProgress;
       VERIFY (wndProgress.Create(WS_CHILD | WS_VISIBLE, rc,
                                               &m_wndStatusBar, 1));
       wndProgress.SetRange(0, 50);
       wndProgress.SetStep(1);

       // Perform some lengthy process, simulated here with a for loop
       // and the Sleep function.

       for(int i=0;i<50;i++)
       {
          Sleep(50);
          wndProgress.StepIt();
       }
   } 

Keywords : kbcode kbMFC KbUIDesign kbVC kbVC400 kbVC500 kbVC600
Version : 4.0 5.0 6.0
Platform : NT WINDOWS
Issue type : kbhowto


Last Reviewed: July 23, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.