- MFC 教程
- MFC - 首頁
- MFC - 概述
- MFC - 環境設定
- MFC - VC++ 專案
- MFC - 入門指南
- MFC - Windows 基礎
- MFC - 對話方塊
- MFC - Windows 資源
- MFC - 屬性表
- MFC - Windows 佈局
- MFC - 控制元件管理
- MFC - Windows 控制元件
- MFC - 訊息與事件
- MFC - ActiveX 控制元件
- MFC - 檔案系統
- MFC - 標準 I/O
- MFC - 文件檢視
- MFC - 字串
- MFC - CArray
- MFC - 連結串列
- MFC - 資料庫類
- MFC - 序列化
- MFC - 多執行緒
- MFC - Internet 程式設計
- MFC - GDI
- MFC - 庫
- MFC 有用資源
- MFC - 快速指南
- MFC - 有用資源
- MFC - 討論
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 - 為靜態文字控制元件新增值變數。
步驟 4 - 為進度控制元件新增控制元件變數。
步驟 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 - 當上述程式碼編譯並執行時,您將看到以下輸出。