Share via


CProgressCtrl-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Biedt de functionaliteit van het algemene besturingselement voor de voortgangsbalk van Windows.

Syntaxis

class CProgressCtrl : public CWnd

Leden

Openbare constructors

Naam Description
CProgressCtrl::CProgressCtrl Maakt een CProgressCtrl object.

Openbare methoden

Naam Description
CProgressCtrl::Create Hiermee maakt u een besturingselement voor de voortgangsbalk en koppelt u dit aan een CProgressCtrl object.
CProgressCtrl::CreateEx Hiermee maakt u een voortgangsbeheer met de opgegeven uitgebreide Stijlen van Windows en koppelt u dit aan een CProgressCtrl object.
CProgressCtrl::GetBarColor Hiermee haalt u de kleur van de voortgangsindicatorbalk op voor het huidige besturingselement voor de voortgangsbalk.
CProgressCtrl::GetBkColor Hiermee haalt u de achtergrondkleur van de huidige voortgangsbalk op.
CProgressCtrl::GetPos Hiermee haalt u de huidige positie van de voortgangsbalk op.
CProgressCtrl::GetRange Hiermee haalt u de onder- en bovengrenzen van het bereik van het besturingselement voor de voortgangsbalk op.
CProgressCtrl::GetState Hiermee haalt u de status van het huidige besturingselement voor de voortgangsbalk op.
CProgressCtrl::GetStep Hiermee wordt de stapstap voor de voortgangsbalk van het huidige besturingselement voor de voortgangsbalk opgehaald.
CProgressCtrl::OffsetPos Hiermee wordt de huidige positie van een voortgangsbalk besturingselement met een opgegeven verhoging verhoogd en wordt de balk opnieuw getekend om de nieuwe positie weer te geven.
CProgressCtrl::SetBarColor Hiermee stelt u de kleur van de voortgangsindicatorbalk in het huidige besturingselement voor de voortgangsbalk in.
CProgressCtrl::SetBkColor Hiermee stelt u de achtergrondkleur voor de voortgangsbalk in.
CProgressCtrl::SetMarquee Hiermee schakelt u de selectiemodus in of uit voor het huidige besturingselement voor de voortgangsbalk.
CProgressCtrl::SetPos Hiermee stelt u de huidige positie in voor een voortgangsbalk en tekent u de balk opnieuw om de nieuwe positie weer te geven.
CProgressCtrl::SetRange Hiermee stelt u het minimum- en maximumbereik in voor een voortgangsbalk en stelt u de balk opnieuw in om de nieuwe bereiken weer te geven.
CProgressCtrl::SetState Hiermee stelt u de status van het huidige besturingselement voor de voortgangsbalk in.
CProgressCtrl::SetStep Hiermee geeft u de stap increment voor een voortgangsbalk besturingselement.
CProgressCtrl::StepIt Hiermee wordt de huidige positie voor een voortgangsbalkcontrole door de stapstap verhoogd (zie SetStep) en wordt de balk opnieuw getekend om de nieuwe positie weer te geven.

Opmerkingen

Een voortgangsbalk besturingselement is een venster dat een toepassing kan gebruiken om de voortgang van een langdurige bewerking aan te geven. Het bestaat uit een rechthoek die geleidelijk wordt gevuld, van links naar rechts, met de markeringskleur van het systeem als een bewerking vordert.

Een voortgangsbalk heeft een bereik en een huidige positie. Het bereik vertegenwoordigt de totale duur van de bewerking en de huidige positie vertegenwoordigt de voortgang die de toepassing heeft gemaakt voor het voltooien van de bewerking. De vensterprocedure maakt gebruik van het bereik en de huidige positie om het percentage van de voortgangsbalk te bepalen dat moet worden gevuld met de markeringskleur. Omdat het bereik en de huidige positiewaarden worden uitgedrukt als ondertekende gehele getallen, is het mogelijke bereik van huidige positiewaarden van -2.147.483.648 tot 2.147.483.647 inclusief.

Zie Besturingselementen en gebruiken CProgressCtrlvoor meer informatie over het gebruikCProgressCtrl.

Overnamehiërarchie

CObject

CCmdTarget

CWnd

CProgressCtrl

Requirements

Rubriek:afxcmn.h

CProgressCtrl::CProgressCtrl

Maakt een CProgressCtrl object.

CProgressCtrl();

Opmerkingen

Nadat u het CProgressCtrl object hebt gemaakt, roept CProgressCtrl::Create u aan om het besturingselement voor de voortgangsbalk te maken.

Example

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

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

CProgressCtrl::Create

Hiermee maakt u een besturingselement voor de voortgangsbalk en koppelt u dit aan een CProgressCtrl object.

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

Parameterwaarden

dwStyle
Hiermee geeft u de stijl van het besturingselement voor de voortgangsbalk op. Pas een combinatie van vensterstijlen toe die zijn toegeschreven in CreateWindow de Windows SDK, naast de volgende stijlen voor voortgangsbalkbeheer, op het besturingselement:

  • PBS_VERTICAL Hiermee wordt voortgangsinformatie verticaal weergegeven, van boven naar beneden. Zonder deze vlag wordt het besturingselement voor de voortgangsbalk horizontaal van links naar rechts weergegeven.

  • PBS_SMOOTH Geeft geleidelijke, vloeiende invulling van de voortgangsbalkbesturingselement weer. Zonder deze vlag wordt het besturingselement gevuld met blokken.

rect
Hiermee geeft u de grootte en positie van het voortgangsbalk besturingselement. Het kan een CRect object of een RECT structuur zijn. Omdat het besturingselement een onderliggend venster moet zijn, zijn de opgegeven coördinaten relatief ten opzichte van het clientgebied van de pParentWnd.

pParentWnd
Hiermee geeft u het bovenliggende venster van het voortgangsbalk besturingselement, meestal een CDialog. Deze mag niet NULL zijn.

nID
Hiermee geeft u de id van het voortgangsbalk besturingselement.

Retourwaarde

WAAR als het CProgressCtrl object is gemaakt; anders ONWAAR.

Opmerkingen

U maakt een CProgressCtrl object in twee stappen. Roep eerst de constructor aan, waarmee het CProgressCtrl object wordt gemaakt en roep vervolgens Createhet besturingselement voor de voortgangsbalk aan.

Example

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

Hiermee maakt u een besturingselement (een onderliggend venster) en koppelt u dit aan het CProgressCtrl object.

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

Parameterwaarden

dwExStyle
Hiermee geeft u de uitgebreide stijl van het besturingselement dat wordt gemaakt. Zie de dwExStyle parameter voor in de Windows SDK voor CreateWindowEx een lijst met uitgebreide Windows-stijlen.

dwStyle
Hiermee geeft u de stijl van het besturingselement voor de voortgangsbalk op. Pas een combinatie van vensterstijlen toe die worden beschreven in CreateWindow de Windows SDK.

rect
Een verwijzing naar een RECT structuur die de grootte en positie van het venster beschrijft dat moet worden gemaakt, in clientcoördinaten van pParentWnd.

pParentWnd
Een aanwijzer naar het venster dat het bovenliggende besturingselement is.

nID
De id van het onderliggende venster van het besturingselement.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Gebruik CreateEx in plaats van Create uitgebreide Windows-stijlen toe te passen, die zijn opgegeven door het voorwoord WS_EX_voor de uitgebreide Stijl van Windows.

CProgressCtrl::GetBarColor

Hiermee haalt u de kleur van de voortgangsindicatorbalk op voor het huidige besturingselement voor de voortgangsbalk.

COLORREF GetBarColor() const;

Retourwaarde

De kleur van de huidige voortgangsbalk, weergegeven als een COLORREF waarde of CLR_DEFAULT als de kleur van de voortgangsindicatorbalk de standaardkleur is.

Opmerkingen

Met deze methode wordt het PBM_GETBARCOLOR bericht verzonden, dat wordt beschreven in de Windows SDK.

CProgressCtrl::GetBkColor

Hiermee haalt u de achtergrondkleur van de huidige voortgangsbalk op.

COLORREF GetBkColor() const;

Retourwaarde

De achtergrondkleur van de huidige voortgangsbalk, weergegeven als een COLORREF waarde.

Opmerkingen

Met deze methode wordt het PBM_GETBKCOLOR bericht verzonden, dat wordt beschreven in de Windows SDK.

CProgressCtrl::GetPos

Haalt de huidige positie van de voortgangsbalk op.

int GetPos();

Retourwaarde

De positie van het besturingselement voor de voortgangsbalk.

Opmerkingen

De positie van het besturingselement voor de voortgangsbalk is niet de fysieke locatie op het scherm, maar bevindt zich liever tussen het bovenste en onderste bereik dat wordt aangegeven in SetRange.

Example

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

Hiermee haalt u de huidige onder- en bovengrenzen of het bereik van het besturingselement voor de voortgangsbalk op.

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

Parameterwaarden

nLower
Een verwijzing naar een geheel getal dat de ondergrens van het besturingselement voor de voortgangsbalk ontvangt.

nUpper
Een verwijzing naar een geheel getal dat de bovengrens van het besturingselement voor de voortgangsbalk ontvangt.

Opmerkingen

Met deze functie worden de waarden van de onder- en bovengrenzen gekopieerd naar respectievelijk de gehele getallen waarnaar nLower wordt verwezen.nUpper

Example

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

Hiermee haalt u de status van het huidige besturingselement voor de voortgangsbalk op.

int GetState() const;

Retourwaarde

De status van het huidige besturingselement voor de voortgangsbalk, een van de volgende waarden:

Waarde Staat
PBST_NORMAL In uitvoering
PBST_ERROR Fout
PBST_PAUSED Onderbroken

Opmerkingen

Met deze methode wordt het PBM_GETSTATE bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

Het eerste codevoorbeeld definieert de variabele, m_progressCtrldie wordt gebruikt om programmatisch toegang te krijgen tot het voortgangsbalkbeheer. Deze variabele wordt gebruikt in het volgende voorbeeld.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

In het volgende codevoorbeeld wordt de status van het huidige besturingselement voor de voortgangsbalk opgehaald.

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

Hiermee wordt de stapstap voor de voortgangsbalk van het huidige besturingselement voor de voortgangsbalk opgehaald.

int GetStep() const;

Retourwaarde

De stap voor het verhogen van de voortgangsbalk.

Opmerkingen

De stapstap is het bedrag waarmee een aanroep de CProgressCtrl::StepIt huidige positie van de voortgangsbalk verhoogt.

Met deze methode wordt het PBM_GETSTEP bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

Het eerste codevoorbeeld definieert de variabele, m_progressCtrldie wordt gebruikt om programmatisch toegang te krijgen tot het voortgangsbalkbeheer. Deze variabele wordt gebruikt in het volgende voorbeeld.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

In het volgende codevoorbeeld wordt de stapverhoging van het huidige voortgangsbalkbeheer opgehaald.

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

Hiermee wordt de huidige positie van het besturingselement voor de voortgangsbalk verhoogd door de toename die is opgegeven door nPos en wordt de balk opnieuw getekend om de nieuwe positie weer te geven.

int OffsetPos(int nPos);

Parameterwaarden

nPos
Bedrag om de positie te vooruit te gaan.

Retourwaarde

De vorige positie van het besturingselement voortgangsbalk.

Example

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

Hiermee stelt u de kleur van de voortgangsindicatorbalk in het huidige besturingselement voor de voortgangsbalk in.

COLORREF SetBarColor(COLORREF clrBar);

Parameterwaarden

clrBar
[in] Een COLORREF waarde die de nieuwe kleur van de voortgangsindicatorbalk aangeeft. Geef CLR_DEFAULT op dat de voortgangsbalk de standaardkleur moet gebruiken.

Retourwaarde

De vorige kleur van de voortgangsindicatorbalk, weergegeven als een COLORREF waarde of CLR_DEFAULT als de kleur van de voortgangsindicatorbalk de standaardkleur is.

Opmerkingen

Met SetBarColor de methode wordt de kleur van de voortgangsbalk alleen ingesteld als een Windows Vista-thema niet van kracht is.

Met deze methode wordt het PBM_SETBARCOLOR bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

Het eerste codevoorbeeld definieert de variabele, m_progressCtrldie wordt gebruikt om programmatisch toegang te krijgen tot het voortgangsbalkbeheer. Deze variabele wordt gebruikt in het volgende voorbeeld.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

In het volgende codevoorbeeld wordt de kleur van de voortgangsbalk gewijzigd in rood, groen, blauw of de standaardwaarde.

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

Hiermee stelt u de achtergrondkleur voor de voortgangsbalk in.

COLORREF SetBkColor(COLORREF clrNew);

Parameterwaarden

clrNew
Een COLORREF waarde die de nieuwe achtergrondkleur aangeeft. Geef de CLR_DEFAULT waarde op voor het gebruik van de standaardachtergrondkleur voor de voortgangsbalk.

Retourwaarde

De COLORREF waarde die de vorige achtergrondkleur aangeeft of CLR_DEFAULT als de achtergrondkleur de standaardkleur is.

Example

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

Hiermee schakelt u de selectiemodus in of uit voor het huidige besturingselement voor de voortgangsbalk.

BOOL SetMarquee(
    BOOL fMarqueeMode,
    int nInterval);

Parameterwaarden

fMarqueeMode
[in] TRUE om de schakelmodus voor het selectiekader in te schakelen of FALSE om de selectiemodus uit te schakelen.

nInterval
[in] Tijd in milliseconden tussen updates van de selectiekaderanimatie.

Retourwaarde

Deze methode retourneert TRUEaltijd .

Opmerkingen

Wanneer de modus Voor de selectie is ingeschakeld, wordt de voortgangsbalk geanimeerd en schuift deze als een teken in een theater marquee.

Met deze methode wordt het PBM_SETMARQUEE bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

Het eerste codevoorbeeld definieert de variabele, m_progressCtrldie wordt gebruikt om programmatisch toegang te krijgen tot het voortgangsbalkbeheer. Deze variabele wordt gebruikt in het volgende voorbeeld.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

Het volgende codevoorbeeld wordt gestart en stopt de animatie voor het schuiven van een selectiekader.

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

Hiermee stelt u de huidige positie van het voortgangsbalkbeheer in zoals opgegeven door nPos en wordt de balk opnieuw getekend om de nieuwe positie weer te geven.

int SetPos(int nPos);

Parameterwaarden

nPos
Nieuwe positie van het besturingselement voor de voortgangsbalk.

Retourwaarde

De vorige positie van het besturingselement voortgangsbalk.

Opmerkingen

De positie van het besturingselement voor de voortgangsbalk is niet de fysieke locatie op het scherm, maar bevindt zich liever tussen het bovenste en onderste bereik dat wordt aangegeven in SetRange.

Example

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

Hiermee stelt u de boven- en ondergrenzen van het bereik van het besturingselement voor de voortgangsbalk in en tekent u de balk opnieuw om de nieuwe bereiken weer te geven.

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

Parameterwaarden

nLower
Hiermee geeft u de ondergrens van het bereik (standaard is nul).

nUpper
Hiermee geeft u de bovengrens van het bereik (standaard is 100).

Opmerkingen

De lidfunctie SetRange32 stelt het 32-bits bereik voor het voortgangsbeheer in.

Example

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

Hiermee stelt u de status van het huidige besturingselement voor de voortgangsbalk in.

int SetState(int iState);

Parameterwaarden

iState
[in] De status voor het instellen van de voortgangsbalk. Gebruik een van de volgende waarden:

  • PBST_NORMAL - Wordt uitgevoerd
  • PBST_ERROR -Fout
  • PBST_PAUSED -Onderbroken

Retourwaarde

De vorige status van het huidige besturingselement voor de voortgangsbalk.

Opmerkingen

Met deze methode wordt het PBM_SETSTATE bericht verzonden, dat wordt beschreven in de Windows SDK.

Example

Het eerste codevoorbeeld definieert de variabele, m_progressCtrldie wordt gebruikt om programmatisch toegang te krijgen tot het voortgangsbalkbeheer. Deze variabele wordt gebruikt in het volgende voorbeeld.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

In het volgende codevoorbeeld wordt de status van het huidige besturingselement voor de voortgangsbalk ingesteld op Onderbroken of Wordt uitgevoerd.

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

Hiermee geeft u de stap increment voor een voortgangsbalk besturingselement.

int SetStep(int nStep);

Parameterwaarden

nStep
Nieuwe stap incrementeel.

Retourwaarde

De vorige stap incrementeel.

Opmerkingen

De stapstap is het bedrag waarmee een aanroep om de huidige positie van de voortgangsbalk te CProgressCtrl::StepIt verhogen.

De standaardstapstap is 10.

Example

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

Hiermee wordt de huidige positie voor een voortgangsbalk door de stapstap verhoogd en wordt de balk opnieuw getekend om de nieuwe positie weer te geven.

int StepIt();

Retourwaarde

De vorige positie van het besturingselement voortgangsbalk.

Opmerkingen

De stapstap wordt ingesteld door de CProgressCtrl::SetStep lidfunctie.

Example

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

Zie ook

MFC-voorbeeld CMNCTRL2
CWnd klasse
Hiërarchiegrafiek