MFC - Controllo avanzamento
UN progress bar controlè una finestra che un'applicazione può utilizzare per indicare lo stato di avanzamento di una lunga operazione. Consiste in un rettangolo che viene riempito gradualmente, da sinistra a destra, con il colore di evidenziazione del sistema man mano che un'operazione procede. È rappresentato daCProgressCtrl classe.
Ecco l'elenco dei metodi nella classe CProgressCtrl -
Sr.No. | Nome e descrizione |
---|---|
1 | Create Crea un controllo della barra di avanzamento e lo collega a un oggetto CProgressCtrl. |
2 | CreateEx Crea un controllo di avanzamento con gli stili estesi di Windows specificati e lo collega a un oggetto CProgressCtrl. |
3 | GetBarColor Ottiene il colore della barra dell'indicatore di avanzamento per il controllo della barra di avanzamento corrente. |
4 | GetBkColor Ottiene il colore di sfondo della barra di avanzamento corrente. |
5 | GetPos Ottiene la posizione corrente della barra di avanzamento. |
6 | GetRange Ottiene i limiti inferiore e superiore dell'intervallo del controllo della barra di avanzamento. |
7 | GetState Ottiene lo stato del controllo della barra di avanzamento corrente. |
8 | GetStep Recupera l'incremento del passaggio per la barra di avanzamento del controllo barra di avanzamento corrente. |
9 | OffsetPos Fa avanzare la posizione corrente di un controllo della barra di avanzamento di un incremento specificato e ridisegna la barra per riflettere la nuova posizione. |
10 | SetBarColor Imposta il colore della barra dell'indicatore di avanzamento nel controllo della barra di avanzamento corrente. |
11 | SetBkColor Imposta il colore di sfondo per la barra di avanzamento. |
12 | SetMarquee Attiva o disattiva la modalità selezione per il controllo della barra di avanzamento corrente. |
13 | SetPos Imposta la posizione corrente per un controllo della barra di avanzamento e ridisegna la barra per riflettere la nuova posizione. |
14 | SetRange Imposta gli intervalli minimo e massimo per un controllo della barra di avanzamento e ridisegna la barra per riflettere i nuovi intervalli. |
15 | SetState Imposta lo stato del controllo della barra di avanzamento corrente. |
16 | SetStep Specifica l'incremento del passaggio per un controllo della barra di avanzamento. |
17 | StepIt Fa avanzare la posizione corrente per un controllo della barra di avanzamento dell'incremento del passo (vedere SetStep) e ridisegna la barra per riflettere la nuova posizione. |
Creiamo una nuova applicazione MFC.
Step 1 - Modificare l'ID del controllo Text in e rimuovere la didascalia.
Step 2 - Trascina il controllo di avanzamento dalla casella degli strumenti.
Step 3 - Aggiungere una variabile di valore per il controllo del testo statico.

Step 4 - Aggiungere la variabile di controllo per il controllo di avanzamento.

Step 5 - Ecco l'implementazione in 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
}
Step 6 - Quando il codice sopra è stato compilato ed eseguito, vedrai il seguente output.
