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
CProgressCtrl
Spécifications
En-tête : afxcmn.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 CRect
RECT
structure. Étant donné que le contrôle doit être une fenêtre enfant, les coordonnées spécifiées sont relatives à la zone cliente pParentWnd
du .
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 :
Valeur | State |
---|---|
PBST_NORMAL | En cours |
PBST_ERROR | Error |
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_progressCtrl
utilisé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_progressCtrl
utilisé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_progressCtrl
utilisé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_progressCtrl
utilisé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 coursPBST_ERROR
-ErreurPBST_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_progressCtrl
utilisé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();