Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Classe
Fornisce la funzionalità del controllo indicatore di stato comune di Windows.
Sintassi
class CProgressCtrl : public CWnd
Membri
Costruttori pubblici
| Nome | Descrizione |
|---|---|
CProgressCtrl::CProgressCtrl |
Costruisce un oggetto CProgressCtrl. |
Metodi pubblici
| Nome | Descrizione |
|---|---|
CProgressCtrl::Create |
Crea un controllo indicatore di stato e lo collega a un CProgressCtrl oggetto . |
CProgressCtrl::CreateEx |
Crea un controllo di stato con gli stili estesi di Windows specificati e lo associa a un CProgressCtrl oggetto . |
CProgressCtrl::GetBarColor |
Ottiene il colore della barra dell'indicatore di stato per il controllo indicatore di stato corrente. |
CProgressCtrl::GetBkColor |
Ottiene il colore di sfondo della barra di stato corrente. |
CProgressCtrl::GetPos |
Ottiene la posizione corrente dell'indicatore di stato. |
CProgressCtrl::GetRange |
Ottiene i limiti inferiori e superiori dell'intervallo del controllo indicatore di stato. |
CProgressCtrl::GetState |
Ottiene lo stato del controllo indicatore di stato corrente. |
CProgressCtrl::GetStep |
Recupera l'incremento del passaggio per la barra di stato del controllo indicatore di stato corrente. |
CProgressCtrl::OffsetPos |
Sposta in avanti la posizione corrente di un controllo indicatore di stato in base a un incremento specificato e ridisegna la barra in modo da riflettere la nuova posizione. |
CProgressCtrl::SetBarColor |
Imposta il colore della barra dell'indicatore di stato nel controllo indicatore di stato corrente. |
CProgressCtrl::SetBkColor |
Imposta il colore di sfondo per la barra di stato. |
CProgressCtrl::SetMarquee |
Attiva o disattiva la modalità di selezione per il controllo indicatore di stato corrente. |
CProgressCtrl::SetPos |
Imposta la posizione corrente per un controllo indicatore di stato e ridisegna la barra in modo da riflettere la nuova posizione. |
CProgressCtrl::SetRange |
Imposta gli intervalli minimo e massimo per un controllo indicatore di stato e ridisegna la barra in modo da riflettere i nuovi intervalli. |
CProgressCtrl::SetState |
Imposta lo stato del controllo indicatore di stato corrente. |
CProgressCtrl::SetStep |
Specifica l'incremento del passaggio per un controllo indicatore di stato. |
CProgressCtrl::StepIt |
Sposta in avanti la posizione corrente per un controllo indicatore di stato in base all'incremento del passaggio (vedere SetStep) e ridisegna la barra per riflettere la nuova posizione. |
Osservazioni:
Un controllo indicatore di stato è una finestra che un'applicazione può usare per indicare lo stato di avanzamento di un'operazione lunga. È costituito da un rettangolo che viene gradualmente riempito, da sinistra a destra, con il colore di evidenziazione del sistema durante l'avanzamento di un'operazione.
Un controllo indicatore di stato ha un intervallo e una posizione corrente. L'intervallo rappresenta la durata totale dell'operazione e la posizione corrente rappresenta lo stato di avanzamento dell'applicazione verso il completamento dell'operazione. La routine della finestra utilizza l'intervallo e la posizione corrente per determinare la percentuale della barra di stato da riempire con il colore di evidenziazione. Poiché i valori di intervallo e posizione corrente sono espressi come interi con segno, l'intervallo possibile di valori di posizione corrente è compreso tra -2.147.483.648 e 2.147.483.647 inclusi.
Per altre informazioni sull'uso CProgressCtrldi , vedere Controlli e uso di CProgressCtrl.
Gerarchia di ereditarietà
CProgressCtrl
Requisiti
Intestazione: afxcmn.h
CProgressCtrl::CProgressCtrl
Costruisce un oggetto CProgressCtrl.
CProgressCtrl();
Osservazioni:
Dopo aver costruito l'oggetto CProgressCtrl , chiamare CProgressCtrl::Create per creare il controllo indicatore di stato.
Esempio
// Create a progress control object on the stack.
CProgressCtrl myCtrl;
// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;
CProgressCtrl::Create
Crea un controllo indicatore di stato e lo collega a un CProgressCtrl oggetto .
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametri
dwStyle
Specifica lo stile del controllo indicatore di stato. Applicare qualsiasi combinazione di stili di finestra inseriti in CreateWindow Windows SDK, oltre agli stili di controllo barra di stato seguenti, al controllo :
PBS_VERTICALVisualizza le informazioni sullo stato di avanzamento verticalmente, dall'alto verso il basso. Senza questo flag, il controllo indicatore di stato viene visualizzato orizzontalmente, da sinistra a destra.PBS_SMOOTHVisualizza un riempimento graduale e uniforme nel controllo indicatore di stato. Senza questo flag, il controllo riempirà i blocchi.
rect
Specifica le dimensioni e la posizione del controllo indicatore di stato. Può essere un CRect oggetto o una RECT struttura. Poiché il controllo deve essere una finestra figlio, le coordinate specificate sono relative all'area client di pParentWnd.
pParentWnd
Specifica la finestra padre del controllo indicatore di stato, in genere un oggetto CDialog. Non deve essere NULL.
nID
Specifica l'ID del controllo indicatore di stato.
Valore restituito
TRUE se l'oggetto CProgressCtrl viene creato correttamente; in caso contrario, FALSE.
Osservazioni:
Si costruisce un CProgressCtrl oggetto in due passaggi. Chiamare innanzitutto il costruttore , che crea l'oggetto CProgressCtrl e quindi chiamare Create, che crea il controllo indicatore di stato.
Esempio
CProgressCtrl myCtrl;
// Create a smooth child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 10, 200, 30),
pParentWnd, IDC_PROGRESSCTRL);
CProgressCtrl::CreateEx
Crea un controllo (una finestra figlio) e lo associa all'oggetto CProgressCtrl .
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametri
dwExStyle
Specifica lo stile esteso del controllo da creare. Per un elenco degli stili di Windows estesi, vedi il dwExStyle parametro per CreateWindowEx in Windows SDK.
dwStyle
Specifica lo stile del controllo indicatore di stato. Applicare qualsiasi combinazione di stili di finestra descritti in CreateWindow Windows SDK.
rect
Riferimento a una RECT struttura che descrive le dimensioni e la posizione della finestra da creare, nelle coordinate client di pParentWnd.
pParentWnd
Puntatore alla finestra padre del controllo.
nID
ID finestra figlio del controllo.
Valore restituito
Diverso da zero se ha esito positivo; in caso contrario 0.
Osservazioni:
Usare CreateEx invece di Create applicare stili di Windows estesi, specificati dalla prefazione WS_EX_dello stile esteso di Windows.
CProgressCtrl::GetBarColor
Ottiene il colore della barra dell'indicatore di stato per il controllo indicatore di stato corrente.
COLORREF GetBarColor() const;
Valore restituito
Colore della barra di stato corrente, rappresentato come COLORREF valore o CLR_DEFAULT se il colore della barra dell'indicatore di stato è il colore predefinito.
Osservazioni:
Questo metodo invia il PBM_GETBARCOLOR messaggio, descritto in Windows SDK.
CProgressCtrl::GetBkColor
Ottiene il colore di sfondo della barra di stato corrente.
COLORREF GetBkColor() const;
Valore restituito
Colore di sfondo della barra di stato corrente, rappresentata come COLORREF valore.
Osservazioni:
Questo metodo invia il PBM_GETBKCOLOR messaggio, descritto in Windows SDK.
CProgressCtrl::GetPos
Recupera la posizione corrente dell'indicatore di stato.
int GetPos();
Valore restituito
Posizione del controllo indicatore di stato.
Osservazioni:
La posizione del controllo indicatore di stato non è la posizione fisica sullo schermo, ma è piuttosto compresa tra l'intervallo superiore e quello inferiore indicato in SetRange.
Esempio
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the new position to half of the current position.
myCtrl.SetPos(myCtrl.GetPos() / 2);
CProgressCtrl::GetRange
Ottiene i limiti inferiori e superiori correnti, o intervallo, del controllo indicatore di stato.
void GetRange(
int& nLower,
int& nUpper);
Parametri
nLower
Riferimento a un numero intero che riceve il limite inferiore del controllo indicatore di stato.
nUpper
Riferimento a un numero intero che riceve il limite superiore del controllo indicatore di stato.
Osservazioni:
Questa funzione copia i valori dei limiti inferiori e superiori rispettivamente ai numeri interi a cui fa nLower riferimento e nUpper.
Esempio
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the position to be one-fourth of the total range.
int nLower, nUpper;
myCtrl.GetRange(nLower, nUpper);
myCtrl.SetPos((nUpper - nLower) / 4);
CProgressCtrl::GetState
Ottiene lo stato del controllo indicatore di stato corrente.
int GetState() const;
Valore restituito
Stato del controllo indicatore di stato corrente, ovvero uno dei valori seguenti:
| Valore | Regione |
|---|---|
| PBST_NORMAL | In corso |
| PBST_ERROR | Error |
| PBST_PAUSED | In pausa |
Osservazioni:
Questo metodo invia il PBM_GETSTATE messaggio, descritto in Windows SDK.
Esempio
Il primo esempio di codice definisce la variabile , m_progressCtrl, usata per accedere a livello di codice al controllo barra di stato. Questa variabile viene usata nell'esempio riportato di seguito.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Nell'esempio di codice successivo viene recuperato lo stato del controllo indicatore di stato corrente.
// Display the current state of the progress control.
CString str = _T("The progress control state is ");
int progState = m_progressCtrl.GetState();
if (progState == PBST_NORMAL)
str += _T("NORMAL");
else if (progState == PBST_PAUSED)
str += _T("PAUSED");
else if (progState == PBST_ERROR)
str += _T("ERROR");
else
str += _T("unknown");
AfxMessageBox(str, MB_ICONEXCLAMATION);
CProgressCtrl::GetStep
Recupera l'incremento del passaggio per la barra di stato del controllo indicatore di stato corrente.
int GetStep() const;
Valore restituito
Incremento del passaggio dell'indicatore di stato.
Osservazioni:
L'incremento del passaggio è l'importo in base al quale una chiamata a CProgressCtrl::StepIt aumenta la posizione corrente dell'indicatore di stato.
Questo metodo invia il PBM_GETSTEP messaggio, descritto in Windows SDK.
Esempio
Il primo esempio di codice definisce la variabile , m_progressCtrl, usata per accedere a livello di codice al controllo barra di stato. Questa variabile viene usata nell'esempio riportato di seguito.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Nell'esempio di codice successivo viene recuperato l'incremento del passaggio del controllo indicatore di stato corrente.
// Get the step increment for the progress control.
CString str;
int incr = m_progressCtrl.GetStep();
str.Format(_T("The step increment is %d."), incr);
AfxMessageBox(str, MB_ICONEXCLAMATION);
CProgressCtrl::OffsetPos
Sposta in avanti la posizione corrente del controllo indicatore di stato in base all'incremento specificato da nPos e ridisegna la barra in modo da riflettere la nuova posizione.
int OffsetPos(int nPos);
Parametri
nPos
Quantità di avanzamento della posizione.
Valore restituito
Posizione precedente del controllo indicatore di stato.
Esempio
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Offset the position by one-fourth of the total range.
int nLower, nUpper;
myCtrl.GetRange(nLower, nUpper);
myCtrl.OffsetPos((nUpper - nLower) / 4);
CProgressCtrl::SetBarColor
Imposta il colore della barra dell'indicatore di stato nel controllo indicatore di stato corrente.
COLORREF SetBarColor(COLORREF clrBar);
Parametri
clrBar
[in] Valore COLORREF che specifica il nuovo colore della barra dell'indicatore di stato. Specificare CLR_DEFAULT per fare in modo che la barra di stato usi il colore predefinito.
Valore restituito
Colore precedente della barra dell'indicatore di stato, rappresentato come COLORREF valore o CLR_DEFAULT se il colore della barra dell'indicatore di stato è il colore predefinito.
Osservazioni:
Il SetBarColor metodo imposta il colore della barra di stato solo se un tema di Windows Vista non è attivo.
Questo metodo invia il PBM_SETBARCOLOR messaggio, descritto in Windows SDK.
Esempio
Il primo esempio di codice definisce la variabile , m_progressCtrl, usata per accedere a livello di codice al controllo barra di stato. Questa variabile viene usata nell'esempio riportato di seguito.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Nell'esempio di codice successivo il colore della barra di stato viene modificato in rosso, verde, blu o predefinito.
// Set the progress bar color to red, green, blue, or
// the system default. The SetBarColor method has an
// effect only if the Windows system theme is Classic.
void CCProgressCtrl_s1Dlg::OnSetbarcolorRed()
{
m_progressCtrl.SetBarColor(RGB(255, 0, 0));
}
void CCProgressCtrl_s1Dlg::OnSetbarcolorGreen()
{
m_progressCtrl.SetBarColor(RGB(0, 255, 0));
}
void CCProgressCtrl_s1Dlg::OnSetbarcolorBlue()
{
m_progressCtrl.SetBarColor(RGB(0, 0, 255));
}
void CCProgressCtrl_s1Dlg::OnSetbarcolorOri()
{
m_progressCtrl.SetBarColor(CLR_DEFAULT);
}
CProgressCtrl::SetBkColor
Imposta il colore di sfondo per la barra di stato.
COLORREF SetBkColor(COLORREF clrNew);
Parametri
clrNew
Valore COLORREF che specifica il nuovo colore di sfondo. Specificare il CLR_DEFAULT valore per usare il colore di sfondo predefinito per la barra di stato.
Valore restituito
Valore COLORREF che indica il colore di sfondo precedente o CLR_DEFAULT se il colore di sfondo è il colore predefinito.
Esempio
CProgressCtrl myCtrl;
// Create a smooth child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 10, 200, 30),
pParentWnd, IDC_PROGRESSCTRL);
// Set the background color to red.
myCtrl.SetBkColor(RGB(255, 0, 0));
CProgressCtrl::SetMarquee
Attiva o disattiva la modalità di selezione per il controllo indicatore di stato corrente.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
Parametri
fMarqueeMode
[in] TRUE per attivare la modalità di selezione o FALSE per disattivare la modalità di selezione.
nInterval
[in] Tempo in millisecondi tra gli aggiornamenti dell'animazione di selezione.
Valore restituito
Questo metodo restituisce sempre TRUE.
Osservazioni:
Quando la modalità di selezione è attivata, la barra di stato viene animata e scorre come un segno su un riquadro teatrale.
Questo metodo invia il PBM_SETMARQUEE messaggio, descritto in Windows SDK.
Esempio
Il primo esempio di codice definisce la variabile , m_progressCtrl, usata per accedere a livello di codice al controllo barra di stato. Questa variabile viene usata nell'esempio riportato di seguito.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
L'esempio di codice successivo avvia e arresta l'animazione di scorrimento del riquadro di selezione.
// Turn the marquee animation on or off.
void CCProgressCtrl_s1Dlg::OnSetmarqueeOn()
{
m_progressCtrl.SetMarquee(TRUE, nMarqueeInterval);
}
void CCProgressCtrl_s1Dlg::OnSetmarqueeOff()
{
m_progressCtrl.SetMarquee(FALSE, nMarqueeInterval);
}
CProgressCtrl::SetPos
Imposta la posizione corrente del controllo indicatore di stato come specificato da nPos e ridisegna la barra in modo da riflettere la nuova posizione.
int SetPos(int nPos);
Parametri
nPos
Nuova posizione del controllo indicatore di stato.
Valore restituito
Posizione precedente del controllo indicatore di stato.
Osservazioni:
La posizione del controllo indicatore di stato non è la posizione fisica sullo schermo, ma è piuttosto compresa tra l'intervallo superiore e quello inferiore indicato in SetRange.
Esempio
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the range to be 0 to 100.
myCtrl.SetRange(0, 100);
// Set the position to be half, 50.
myCtrl.SetPos(50);
CProgressCtrl::SetRange
Imposta i limiti superiori e inferiori dell'intervallo del controllo indicatore di stato e ridisegna la barra in modo da riflettere i nuovi intervalli.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
Parametri
nLower
Specifica il limite inferiore dell'intervallo (il valore predefinito è zero).
nUpper
Specifica il limite superiore dell'intervallo (il valore predefinito è 100).
Osservazioni:
La funzione SetRange32 membro imposta l'intervallo a 32 bit per il controllo di stato.
Esempio
CProgressCtrl myCtrl;
// Create a smooth child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(10, 10, 200, 30),
pParentWnd, IDC_PROGRESSCTRL);
// Set the range to be 0 to 100.
myCtrl.SetRange(0, 100);
CProgressCtrl::SetState
Imposta lo stato del controllo indicatore di stato corrente.
int SetState(int iState);
Parametri
iState
[in] Stato per impostare l'indicatore di stato. Utilizzare uno dei valori seguenti:
PBST_NORMAL-In corsoPBST_ERROR-ErrorePBST_PAUSED-Pausa
Valore restituito
Stato precedente del controllo indicatore di stato corrente.
Osservazioni:
Questo metodo invia il PBM_SETSTATE messaggio, descritto in Windows SDK.
Esempio
Il primo esempio di codice definisce la variabile , m_progressCtrl, usata per accedere a livello di codice al controllo barra di stato. Questa variabile viene usata nell'esempio riportato di seguito.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Nell'esempio di codice successivo lo stato del controllo indicatore di stato corrente viene impostato su Sospeso o In corso.
// Set the progrees control to normal or paused state.
void CCProgressCtrl_s1Dlg::OnSetstateNormal()
{
m_progressCtrl.SetState(PBST_NORMAL);
}
void CCProgressCtrl_s1Dlg::OnSetstatePaused()
{
m_progressCtrl.SetState(PBST_PAUSED);
}
CProgressCtrl::SetStep
Specifica l'incremento del passaggio per un controllo indicatore di stato.
int SetStep(int nStep);
Parametri
nStep
Incremento del nuovo passaggio.
Valore restituito
Incremento del passaggio precedente.
Osservazioni:
L'incremento del passaggio è l'importo in base al quale una chiamata a CProgressCtrl::StepIt aumenta la posizione corrente dell'indicatore di stato.
L'incremento predefinito del passaggio è 10.
Esempio
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Set the size to be 1/10 of the total range.
int nLower, nUpper;
myCtrl.GetRange(nLower, nUpper);
myCtrl.SetStep((nUpper - nLower) / 10);
CProgressCtrl::StepIt
Sposta in avanti la posizione corrente per un controllo indicatore di stato in base all'incremento del passaggio e ridisegna la barra in modo da riflettere la nuova posizione.
int StepIt();
Valore restituito
Posizione precedente del controllo indicatore di stato.
Osservazioni:
L'incremento del passaggio viene impostato dalla CProgressCtrl::SetStep funzione membro.
Esempio
CProgressCtrl myCtrl;
// Create a child progress control.
myCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(10, 10, 200, 30), pParentWnd,
IDC_PROGRESSCTRL);
// Advance the position to the next step.
myCtrl.StepIt();