MFC - 進度控制



進度條控制元件是應用程式用來指示冗長操作進度的視窗。它由一個矩形組成,隨著操作的進行,該矩形從左到右逐漸填充系統高亮顏色。它由CProgressCtrl類表示。

以下是 CProgressCtrl 類中的方法列表:

序號 名稱及描述
1

Create

建立進度條控制元件並將其附加到 CProgressCtrl 物件。

2

CreateEx

使用指定的 Windows 擴充套件樣式建立進度控制元件並將其附加到 CProgressCtrl 物件。

3

GetBarColor

獲取當前進度條控制元件的進度指示條顏色。

4

GetBkColor

獲取當前進度條的背景顏色。

5

GetPos

獲取進度條的當前位置。

6

GetRange

獲取進度條控制元件範圍的下限和上限。

7

GetState

獲取當前進度條控制元件的狀態。

8

GetStep

檢索當前進度條控制元件的進度條的步長增量。

9

OffsetPos

將進度條控制元件的當前位置向前移動指定的增量,並重新繪製該條以反映新的位置。

10

SetBarColor

設定當前進度條控制元件中進度指示條的顏色。

11

SetBkColor

設定進度條的背景顏色。

12

SetMarquee

為當前進度條控制元件開啟或關閉跑馬燈模式。

13

SetPos

設定進度條控制元件的當前位置,並重新繪製該條以反映新的位置。

14

SetRange

設定進度條控制元件的最小和最大範圍,並重新繪製該條以反映新的範圍。

15

SetState

設定當前進度條控制元件的狀態。

16

SetStep

指定進度條控制元件的步長增量。

17

StepIt

將進度條控制元件的當前位置向前移動步長增量(參見 SetStep),並重新繪製該條以反映新的位置。

讓我們建立一個新的 MFC 應用程式。

步驟 1 - 將文字控制元件的 ID 更改為,並刪除標題。

步驟 2 - 從工具箱中拖動進度控制元件。

步驟 3 - 為靜態文字控制元件新增值變數。

Progress Control

步驟 4 - 為進度控制元件新增控制元件變數。

Progress Control

步驟 5 - 以下是 OnInitDialog() 中的實現

BOOL CMFCProgressControlDlg::OnInitDialog() {
   CDialogEx::OnInitDialog();

   // Add "About..." menu item to system menu.
 
   // IDM_ABOUTBOX must be in the system command range.
   ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
   ASSERT(IDM_ABOUTBOX < 0xF000);

   CMenu* pSysMenu = GetSystemMenu(FALSE);
   if (pSysMenu != NULL) {
      BOOL bNameValid;
      CString strAboutMenu;
      bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
      ASSERT(bNameValid);
      if (!strAboutMenu.IsEmpty()) {
         pSysMenu -> AppendMenu(MF_SEPARATOR);
         pSysMenu -> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
      }
   }
	
   // Set the icon for this dialog. The framework does this automatically
   // when the application's main window is not a dialog
   SetIcon(m_hIcon, TRUE);      // Set big icon
   SetIcon(m_hIcon, FALSE);     // Set small icon
   
   // TODO: Add extra initialization here
   m_progCtrl.SetRange(0,100);

   for (int i = 0; i <= 100; i++) {
      m_progCtrl.SetPos(i);
   }

   return TRUE; // return TRUE unless you set the focus to a control
}

步驟 6 - 當上述程式碼編譯並執行時,您將看到以下輸出。

Progress Control
mfc_windows_controls.htm
廣告

© . All rights reserved.