Share via


La classe CProgressCtrl

Fournit les fonctionnalités du contrôle commun de barre de progression Windows.

Syntaxe

class CProgressCtrl : public CWnd

Membres

Constructeurs publics

Nom Description
CProgressCtrl::CProgressCtrl Construit un objet CProgressCtrl.

Méthodes publiques

Nom Description
CProgressCtrl::Create Crée un contrôle de barre de progression et l’attache à un CProgressCtrl objet.
CProgressCtrl::CreateEx Crée un contrôle de progression avec les styles étendus Windows spécifiés et l’attache à un CProgressCtrl objet.
CProgressCtrl::GetBarColor Obtient la couleur de la barre d’indicateur de progression pour le contrôle de barre de progression actuel.
CProgressCtrl::GetBkColor Obtient la couleur d’arrière-plan de la barre de progression actuelle.
CProgressCtrl::GetPos Obtient la position actuelle de la barre de progression.
CProgressCtrl::GetRange Obtient les limites inférieures et supérieures de la plage du contrôle de barre de progression.
CProgressCtrl::GetState Obtient l’état du contrôle de barre de progression actuel.
CProgressCtrl::GetStep Récupère l’incrément d’étape pour la barre de progression du contrôle de barre de progression actuel.
CProgressCtrl::OffsetPos Avance la position actuelle d’un contrôle de barre de progression par incrément spécifié et redessine la barre pour refléter la nouvelle position.
CProgressCtrl::SetBarColor Définit la couleur de la barre d’indicateur de progression dans le contrôle de barre de progression actuel.
CProgressCtrl::SetBkColor Définit la couleur d’arrière-plan de la barre de progression.
CProgressCtrl::SetMarquee Active ou désactive le mode marque pour le contrôle de barre de progression actuel.
CProgressCtrl::SetPos Définit la position actuelle d’un contrôle de barre de progression et redessine la barre pour refléter la nouvelle position.
CProgressCtrl::SetRange Définit les plages minimales et maximales d’un contrôle de barre de progression et redessine la barre pour refléter les nouvelles plages.
CProgressCtrl::SetState Définit l'état du contrôle de barre de progression actuel.
CProgressCtrl::SetStep Spécifie l’incrément d’étape d’un contrôle de barre de progression.
CProgressCtrl::StepIt Avance la position actuelle d’un contrôle de barre de progression par incrément d’étape (voir SetStep) et redessine la barre pour refléter la nouvelle position.

Notes

Un contrôle de barre de progression est une fenêtre qu’une application peut utiliser pour indiquer la progression d’une longue opération. Il se compose d’un rectangle qui est progressivement rempli, de gauche à droite, avec la couleur de mise en surbrillance système à mesure qu’une opération progresse.

Un contrôle de barre de progression a une plage et une position actuelle. La plage représente la durée totale de l’opération, et la position actuelle représente la progression que l’application a effectuée pour terminer l’opération. La procédure de fenêtre utilise la plage et la position actuelle pour déterminer le pourcentage de la barre de progression à remplir avec la couleur de surbrillance. Étant donné que la plage et les valeurs de position actuelles sont exprimées sous forme d’entiers signés, la plage possible de valeurs de position actuelle est comprise entre -2 147 483 648 et 2 147 483 647 inclus.

Pour plus d’informations sur l’utilisation CProgressCtrl, consultez Contrôles et utilisation CProgressCtrl.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CProgressCtrl

Spécifications

En-têteafxcmn.h:

CProgressCtrl::CProgressCtrl

Construit un objet CProgressCtrl.

CProgressCtrl();

Notes

Après avoir construit l’objet CProgressCtrl , appelez CProgressCtrl::Create pour créer le contrôle de barre de progression.

Exemple

// Create a progress control object on the stack.
CProgressCtrl myCtrl;

// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;

CProgressCtrl::Create

Crée un contrôle de barre de progression et l’attache à un CProgressCtrl objet.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Paramètres

dwStyle
Spécifie le style du contrôle de barre de progression. Appliquez n’importe quelle combinaison de styles de fenêtres inscrits dans CreateWindow le Kit de développement logiciel (SDK) Windows, en plus des styles de contrôle de barre de progression suivants, au contrôle :

  • PBS_VERTICAL Affiche les informations de progression verticalement, en haut en bas. Sans cet indicateur, le contrôle de barre de progression s’affiche horizontalement, de gauche à droite.

  • PBS_SMOOTH Affiche un remplissage progressif et lisse dans le contrôle de barre de progression. Sans cet indicateur, le contrôle se remplira de blocs.

rect
Spécifie la taille et la position du contrôle de barre de progression. Il peut s’agir d’un objet ou d’une CRectRECT structure. Étant donné que le contrôle doit être une fenêtre enfant, les coordonnées spécifiées sont relatives à la zone cliente pParentWnddu .

pParentWnd
Spécifie la fenêtre parente du contrôle de barre de progression, généralement un CDialog. Elle ne doit pas être NULL.

nID
Spécifie l’ID du contrôle de barre de progression.

Valeur de retour

TRUE si l’objet CProgressCtrl est créé avec succès ; sinon FALSE.

Notes

Vous construisez un CProgressCtrl objet en deux étapes. Tout d’abord, appelez le constructeur, qui crée l’objet CProgressCtrl , puis appelez Create, ce qui crée le contrôle de barre de progression.

Exemple

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

Crée un contrôle (fenêtre enfant) et l’associe à l’objet CProgressCtrl .

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Paramètres

dwExStyle
Spécifie le style étendu du contrôle en cours de création. Pour obtenir la liste des styles Windows étendus, consultez le dwExStyle paramètre correspondant CreateWindowEx dans le Kit de développement logiciel (SDK) Windows.

dwStyle
Spécifie le style du contrôle de barre de progression. Appliquez n’importe quelle combinaison de styles de fenêtre décrit dans CreateWindow le Kit de développement logiciel (SDK) Windows.

rect
Référence à une RECT structure décrivant la taille et la position de la fenêtre à créer, dans les coordonnées clientes de pParentWnd.

pParentWnd
Pointeur vers la fenêtre qui est le parent du contrôle.

nID
ID de la fenêtre enfant du contrôle.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Utilisez CreateEx plutôt que d’appliquer Create des styles Windows étendus, spécifiés par le préface WS_EX_de style étendu Windows.

CProgressCtrl::GetBarColor

Obtient la couleur de la barre d’indicateur de progression pour le contrôle de barre de progression actuel.

COLORREF GetBarColor() const;

Valeur de retour

Couleur de la barre de progression actuelle, représentée sous forme de COLORREF valeur, ou CLR_DEFAULT si la couleur de la barre d’indicateur de progression est la couleur par défaut.

Notes

Cette méthode envoie le PBM_GETBARCOLOR message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CProgressCtrl::GetBkColor

Obtient la couleur d’arrière-plan de la barre de progression actuelle.

COLORREF GetBkColor() const;

Valeur de retour

Couleur d’arrière-plan de la barre de progression actuelle, représentée sous forme de COLORREF valeur.

Notes

Cette méthode envoie le PBM_GETBKCOLOR message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

CProgressCtrl::GetPos

Récupère la position actuelle de la barre de progression.

int GetPos();

Valeur de retour

Position du contrôle de barre de progression.

Notes

La position du contrôle de barre de progression n’est pas l’emplacement physique à l’écran, mais plutôt entre la plage supérieure et inférieure indiquée dans SetRange.

Exemple

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

Obtient les limites inférieures et supérieures actuelles, ou plage, du contrôle de barre de progression.

void GetRange(
    int& nLower,
    int& nUpper);

Paramètres

nLower
Référence à un entier recevant la limite inférieure du contrôle de barre de progression.

nUpper
Référence à un entier recevant la limite supérieure du contrôle de barre de progression.

Notes

Cette fonction copie les valeurs des limites inférieures et supérieures aux entiers référencés respectivement nLower par et nUpper, respectivement.

Exemple

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

Obtient l’état du contrôle de barre de progression actuel.

int GetState() const;

Valeur de retour

État du contrôle de barre de progression actuel, qui est l’une des valeurs suivantes :

Value State
PBST_NORMAL En cours
PBST_ERROR Erreur
PBST_PAUSED Suspendu

Notes

Cette méthode envoie le PBM_GETSTATE message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_progressCtrlutilisée pour accéder par programmation au contrôle de barre de progression. Cette variable est utilisée dans l'exemple suivant.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

L’exemple de code suivant récupère l’état du contrôle de barre de progression actuel.

// 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

Récupère l’incrément d’étape pour la barre de progression du contrôle de barre de progression actuel.

int GetStep() const;

Valeur de retour

Incrément d’étape de la barre de progression.

Notes

L’incrément d’étape est la quantité par laquelle un appel pour CProgressCtrl::StepIt augmenter la position actuelle de la barre de progression.

Cette méthode envoie le PBM_GETSTEP message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_progressCtrlutilisée pour accéder par programmation au contrôle de barre de progression. Cette variable est utilisée dans l'exemple suivant.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

L’exemple de code suivant récupère l’incrément d’étape du contrôle de barre de progression actuel.

// 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

Avance la position actuelle du contrôle de barre de progression par l’incrément spécifié par nPos et redessine la barre pour refléter la nouvelle position.

int OffsetPos(int nPos);

Paramètres

nPos
Montant à avancer la position.

Valeur de retour

Position précédente du contrôle de barre de progression.

Exemple

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

Définit la couleur de la barre d’indicateur de progression dans le contrôle de barre de progression actuel.

COLORREF SetBarColor(COLORREF clrBar);

Paramètres

clrBar
[in] Valeur COLORREF qui spécifie la nouvelle couleur de la barre d’indicateur de progression. Spécifiez CLR_DEFAULT pour que la barre de progression utilise sa couleur par défaut.

Valeur de retour

Couleur précédente de la barre d’indicateur de progression, représentée sous forme de COLORREF valeur, ou CLR_DEFAULT si la couleur de la barre d’indicateur de progression est la couleur par défaut.

Notes

La SetBarColor méthode définit la couleur de la barre de progression uniquement si un thème Windows Vista n’est pas en vigueur.

Cette méthode envoie le PBM_SETBARCOLOR message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_progressCtrlutilisée pour accéder par programmation au contrôle de barre de progression. Cette variable est utilisée dans l'exemple suivant.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

L’exemple de code suivant modifie la couleur de la barre de progression en rouge, vert, bleu ou par défaut.

// 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

Définit la couleur d’arrière-plan de la barre de progression.

COLORREF SetBkColor(COLORREF clrNew);

Paramètres

clrNew
Valeur COLORREF qui spécifie la nouvelle couleur d’arrière-plan. Spécifiez la CLR_DEFAULT valeur à utiliser la couleur d’arrière-plan par défaut pour la barre de progression.

Valeur de retour

Valeur COLORREF indiquant la couleur d’arrière-plan précédente ou CLR_DEFAULT si la couleur d’arrière-plan est la couleur par défaut.

Exemple

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

Active ou désactive le mode marque pour le contrôle de barre de progression actuel.

BOOL SetMarquee(
    BOOL fMarqueeMode,
    int nInterval);

Paramètres

fMarqueeMode
[in] TRUE pour activer le mode Marquee ou FALSE désactiver le mode marquee.

nInterval
[in] Durée en millisecondes entre les mises à jour de l’animation de marque.

Valeur de retour

Cette méthode retourne toujours TRUE.

Notes

Lorsque le mode marque est activé, la barre de progression est animée et défile comme un signe sur un marque de théâtre.

Cette méthode envoie le PBM_SETMARQUEE message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_progressCtrlutilisée pour accéder par programmation au contrôle de barre de progression. Cette variable est utilisée dans l'exemple suivant.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

L’exemple de code suivant démarre et arrête l’animation de défilement de marque.

// 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

Définit la position actuelle du contrôle de barre de progression comme spécifié et nPos redessine la barre pour refléter la nouvelle position.

int SetPos(int nPos);

Paramètres

nPos
Nouvelle position du contrôle de barre de progression.

Valeur de retour

Position précédente du contrôle de barre de progression.

Notes

La position du contrôle de barre de progression n’est pas l’emplacement physique à l’écran, mais plutôt entre la plage supérieure et inférieure indiquée dans SetRange.

Exemple

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

Définit les limites supérieures et inférieures de la plage du contrôle de barre de progression et redessine la barre pour refléter les nouvelles plages.

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

Paramètres

nLower
Spécifie la limite inférieure de la plage (la valeur par défaut est zéro).

nUpper
Spécifie la limite supérieure de la plage (la valeur par défaut est 100).

Notes

La fonction SetRange32 membre définit la plage 32 bits du contrôle de progression.

Exemple

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

Définit l'état du contrôle de barre de progression actuel.

int SetState(int iState);

Paramètres

iState
[in] État à définir la barre de progression. Utilisez l’une des valeurs suivantes :

  • PBST_NORMAL - En cours
  • PBST_ERROR -Erreur
  • PBST_PAUSED -Pause

Valeur de retour

État précédent du contrôle de barre de progression actuel.

Notes

Cette méthode envoie le PBM_SETSTATE message, qui est décrit dans le Kit de développement logiciel (SDK) Windows.

Exemple

Le premier exemple de code définit la variable, m_progressCtrlutilisée pour accéder par programmation au contrôle de barre de progression. Cette variable est utilisée dans l'exemple suivant.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

L’exemple de code suivant définit l’état du contrôle de barre de progression actuel sur Pause ou En cours.

// 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

Spécifie l’incrément d’étape d’un contrôle de barre de progression.

int SetStep(int nStep);

Paramètres

nStep
Nouvel incrément d’étape.

Valeur de retour

Incrément de l’étape précédente.

Notes

L’incrément d’étape est la quantité par laquelle un appel pour CProgressCtrl::StepIt augmenter la position actuelle de la barre de progression.

L’incrément d’étape par défaut est 10.

Exemple

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

Avance la position actuelle d’un contrôle de barre de progression par incrément d’étape et redessine la barre pour refléter la nouvelle position.

int StepIt();

Valeur de retour

Position précédente du contrôle de barre de progression.

Notes

L’incrément d’étape est défini par la CProgressCtrl::SetStep fonction membre.

Exemple

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();

Voir aussi

Exemple MFC CMNCTRL2
CWnd Classe
Graphique hiérarchique