Freigeben über


CProgressCtrl-Klasse

Stellt die Funktionalität des allgemeinen Windows-Statusanzeige-Steuerelements bereit.

Syntax

class CProgressCtrl : public CWnd

Member

Öffentliche Konstruktoren

Name Beschreibung
CProgressCtrl::CProgressCtrl Erstellt ein CProgressCtrl-Objekt.

Öffentliche Methoden

Name Beschreibung
CProgressCtrl::Create Erstellt ein Statusleisten-Steuerelement und fügt es an ein CProgressCtrl Objekt an.
CProgressCtrl::CreateEx Erstellt ein Statussteuerelement mit den angegebenen erweiterten Windows-Formatvorlagen und fügt es an ein CProgressCtrl Objekt an.
CProgressCtrl::GetBarColor Ruft die Farbe der Statusanzeigeleiste für das aktuelle Statusleisten-Steuerelement ab.
CProgressCtrl::GetBkColor Ruft die Hintergrundfarbe der aktuellen Statusleiste ab.
CProgressCtrl::GetPos Ruft die aktuelle Position der Statusleiste ab.
CProgressCtrl::GetRange Ruft die unteren und oberen Begrenzungen des Bereichs des Statusleisten-Steuerelements ab.
CProgressCtrl::GetState Ruft den Status des aktuellen Statusleisten-Steuerelements ab.
CProgressCtrl::GetStep Ruft den Schrittschritt für die Statusanzeige des aktuellen Statusleisten-Steuerelements ab.
CProgressCtrl::OffsetPos Wechselt die aktuelle Position eines Statusleisten-Steuerelements durch ein angegebenes Inkrement und rädiert den Balken neu, um die neue Position widerzuspiegeln.
CProgressCtrl::SetBarColor Legt die Farbe der Statusanzeigeleiste im aktuellen Statusleisten-Steuerelement fest.
CProgressCtrl::SetBkColor Legt die Hintergrundfarbe für die Statusleiste fest.
CProgressCtrl::SetMarquee Aktiviert oder deaktiviert den Laufrahmenmodus für das aktuelle Statusleisten-Steuerelement.
CProgressCtrl::SetPos Legt die aktuelle Position für ein Statusleisten-Steuerelement fest und legt die Leiste neu fest, um die neue Position widerzuspiegeln.
CProgressCtrl::SetRange Legt die mindesten und maximalen Bereiche für ein Statusleisten-Steuerelement fest und legt die Leiste neu ab, um die neuen Bereiche widerzuspiegeln.
CProgressCtrl::SetState Legt den Status des aktuellen Statusanzeige-Steuerelements fest.
CProgressCtrl::SetStep Gibt den Schrittinkrement für ein Statusleisten-Steuerelement an.
CProgressCtrl::StepIt Wechselt die aktuelle Position für ein Statusleisten-Steuerelement um den Schritt inkrementieren (siehe SetStep) und rädiert die Leiste neu, um die neue Position widerzuspiegeln.

Hinweise

Ein Statusleisten-Steuerelement ist ein Fenster, mit dem eine Anwendung den Fortschritt eines langwierigen Vorgangs angeben kann. Es besteht aus einem Rechteck, das schrittweise gefüllt wird, von links nach rechts, mit der Systemherhebungsfarbe, während ein Vorgang fortschreitet.

Ein Statusleisten-Steuerelement verfügt über einen Bereich und eine aktuelle Position. Der Bereich stellt die Gesamtdauer des Vorgangs dar, und die aktuelle Position stellt den Fortschritt dar, den die Anwendung zum Abschließen des Vorgangs vorgenommen hat. Die Fensterprozedur verwendet den Bereich und die aktuelle Position, um den Prozentsatz der Statusleiste zu bestimmen, um die Hervorhebungsfarbe auszufüllen. Da der Bereich und die aktuellen Positionswerte als signierte ganze Zahlen ausgedrückt werden, liegt der mögliche Bereich der aktuellen Positionswerte von -2.147.483.648 bis 2.147.483.647 einschließlich.

Weitere Informationen zur Verwendung CProgressCtrlfinden Sie unter "Steuerelemente und Verwenden" CProgressCtrl.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CProgressCtrl

Anforderungen

Header: afxcmn.h

CProgressCtrl::CProgressCtrl

Erstellt ein CProgressCtrl-Objekt.

CProgressCtrl();

Hinweise

Rufen Sie CProgressCtrl::Create nach dem Erstellen des CProgressCtrl Objekts auf, um das Statusleisten-Steuerelement zu erstellen.

Beispiel

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

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

CProgressCtrl::Create

Erstellt ein Statusleisten-Steuerelement und fügt es an ein CProgressCtrl Objekt an.

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

Parameter

dwStyle
Gibt die Formatvorlage des Statusleistensteuerelements an. Wenden Sie eine beliebige Kombination von Fensterformatvorlagen an, die im Windows SDK, zusätzlich zu den folgenden Statusleisten-Steuerelementstilen, auf das Steuerelement geschrieben CreateWindow wurden:

  • PBS_VERTICAL Zeigt Statusinformationen vertikal, von oben nach unten an. Ohne diese Kennzeichnung wird das Statusleisten-Steuerelement horizontal von links nach rechts angezeigt.

  • PBS_SMOOTH Zeigt das graduelle, glatte Ausfüllen des Statusleisten-Steuerelements an. Ohne dieses Kennzeichen füllt das Steuerelement Blöcke aus.

rect
Gibt die Größe und Position des Statusleistensteuerelements an. Dabei kann es sich um ein CRect Objekt oder eine RECT Struktur handeln. Da das Steuerelement ein untergeordnetes Fenster sein muss, sind die angegebenen Koordinaten relativ zum Clientbereich der pParentWnd.

pParentWnd
Gibt das übergeordnete Fenster des Statusleisten-Steuerelements an, in der Regel ein CDialog. Er darf nicht NULL sein.

nID
Gibt die ID des Statusleisten-Steuerelements an.

Rückgabewert

TRUE, wenn das CProgressCtrl Objekt erfolgreich erstellt wurde; andernfalls FALSE.

Hinweise

Sie erstellen ein CProgressCtrl Objekt in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, der das CProgressCtrl Objekt erstellt, und rufen Sie Createdann auf, wodurch das Statusleisten-Steuerelement erstellt wird.

Beispiel

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

Erstellt ein Steuerelement (ein untergeordnetes Fenster) und ordnet es dem Objekt zu CProgressCtrl .

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

Parameter

dwExStyle
Gibt die erweiterte Formatvorlage des zu erstellenden Steuerelements an. Eine Liste der erweiterten Windows-Stile finden Sie im dwExStyle Parameter für CreateWindowEx das Windows SDK.

dwStyle
Gibt die Formatvorlage des Statusleistensteuerelements an. Wenden Sie eine beliebige Kombination von Fensterformatvorlagen an, die im Windows SDK beschrieben sind CreateWindow .

rect
Ein Verweis auf eine RECT Struktur, die die Größe und Position des zu erstellenden Fensters in Clientkoordinaten pParentWndbeschreibt.

pParentWnd
Ein Zeiger auf das Fenster, das das übergeordnete Steuerelement ist.

nID
Die Untergeordnete Fenster-ID des Steuerelements.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Verwenden Sie CreateEx anstelle von Create erweiterten Windows-Formatvorlagen, die durch die Erweiterte Formatvorlage WS_EX_von Windows angegeben werden.

CProgressCtrl::GetBarColor

Ruft die Farbe der Statusanzeigeleiste für das aktuelle Statusleisten-Steuerelement ab.

COLORREF GetBarColor() const;

Rückgabewert

Die Farbe der aktuellen Statusanzeige, dargestellt als COLORREF Wert oder CLR_DEFAULT wenn die Farbe der Statusanzeigeleiste die Standardfarbe ist.

Hinweise

Diese Methode sendet die PBM_GETBARCOLOR Nachricht, die im Windows SDK beschrieben wird.

CProgressCtrl::GetBkColor

Ruft die Hintergrundfarbe der aktuellen Statusleiste ab.

COLORREF GetBkColor() const;

Rückgabewert

Die Hintergrundfarbe der aktuellen Statusleiste, dargestellt als COLORREF Wert.

Hinweise

Diese Methode sendet die PBM_GETBKCOLOR Nachricht, die im Windows SDK beschrieben wird.

CProgressCtrl::GetPos

Ruft die aktuelle Position der Statusleiste ab.

int GetPos();

Rückgabewert

Die Position des Statusleisten-Steuerelements.

Hinweise

Die Position des Statusleisten-Steuerelements ist nicht die physische Position auf dem Bildschirm, sondern zwischen dem oberen und unteren Bereich angegeben.SetRange

Beispiel

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

Ruft die aktuellen unteren und oberen Begrenzungen oder den Bereich des Statusleisten-Steuerelements ab.

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

Parameter

nLower
Ein Verweis auf eine ganze Zahl, die die untere Grenze des Statusleisten-Steuerelements empfängt.

nUpper
Ein Verweis auf eine ganze Zahl, die die obere Grenze des Statusleisten-Steuerelements empfängt.

Hinweise

Diese Funktion kopiert die Werte der unteren und oberen Begrenzungen in die ganzzahligen Zahlen, auf die bzw. die verwiesen wird nLower nUpper.

Beispiel

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

Ruft den Status des aktuellen Statusleisten-Steuerelements ab.

int GetState() const;

Rückgabewert

Der Status des aktuellen Statusanzeige-Steuerelements, bei dem es sich um einen der folgenden Werte handelt:

Wert Staat
PBST_NORMAL In Bearbeitung
PBST_ERROR Fehler
PBST_PAUSED Angehalten

Hinweise

Diese Methode sendet die PBM_GETSTATE Nachricht, die im Windows SDK beschrieben wird.

Beispiel

Im ersten Codebeispiel wird die Variable definiert, m_progressCtrldie für den programmgesteuerten Zugriff auf das Statusleisten-Steuerelement verwendet wird. Diese Variable wird im nächsten Beispiel verwendet.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

Im nächsten Codebeispiel wird der Status des aktuellen Statusleisten-Steuerelements abgerufen.

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

Ruft den Schrittschritt für die Statusanzeige des aktuellen Statusleisten-Steuerelements ab.

int GetStep() const;

Rückgabewert

Die Schrittinkrementierung der Statusanzeige.

Hinweise

Der Schrittschritt ist der Betrag, um den ein Aufruf CProgressCtrl::StepIt der aktuellen Position der Statusanzeige erhöht.

Diese Methode sendet die PBM_GETSTEP Nachricht, die im Windows SDK beschrieben wird.

Beispiel

Im ersten Codebeispiel wird die Variable definiert, m_progressCtrldie für den programmgesteuerten Zugriff auf das Statusleisten-Steuerelement verwendet wird. Diese Variable wird im nächsten Beispiel verwendet.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

Im nächsten Codebeispiel wird der Schrittinkrement des aktuellen Statusleisten-Steuerelements abgerufen.

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

Wechselt die aktuelle Position des Statusleistensteuerelements um die durch die Leiste angegebene nPos Inkrement, und der Balken wird neu gezeichnet, um die neue Position wiederzugeben.

int OffsetPos(int nPos);

Parameter

nPos
Betrag, um die Position zu voranschreiten.

Rückgabewert

Die vorherige Position des Statusleisten-Steuerelements.

Beispiel

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

Legt die Farbe der Statusanzeigeleiste im aktuellen Statusleisten-Steuerelement fest.

COLORREF SetBarColor(COLORREF clrBar);

Parameter

clrBar
[in] Ein COLORREF Wert, der die neue Farbe der Statusanzeigeleiste angibt. Geben Sie CLR_DEFAULT an, dass die Statusanzeige die Standardfarbe verwendet.

Rückgabewert

Die vorherige Farbe der Statusanzeigeleiste, dargestellt als COLORREF Wert oder CLR_DEFAULT wenn die Farbe der Statusanzeigeleiste die Standardfarbe ist.

Hinweise

Die SetBarColor Methode legt die Farbe der Statusanzeige nur fest, wenn ein Windows Vista-Design nicht wirksam ist.

Diese Methode sendet die PBM_SETBARCOLOR Nachricht, die im Windows SDK beschrieben wird.

Beispiel

Im ersten Codebeispiel wird die Variable definiert, m_progressCtrldie für den programmgesteuerten Zugriff auf das Statusleisten-Steuerelement verwendet wird. Diese Variable wird im nächsten Beispiel verwendet.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

Im nächsten Codebeispiel wird die Farbe der Statusleiste in Rot, Grün, Blau oder standard geändert.

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

Legt die Hintergrundfarbe für die Statusleiste fest.

COLORREF SetBkColor(COLORREF clrNew);

Parameter

clrNew
Ein COLORREF Wert, der die neue Hintergrundfarbe angibt. Geben Sie den CLR_DEFAULT Wert an, der für die Statusanzeige die Standardhintergrundfarbe verwendet werden soll.

Rückgabewert

Der COLORREF Wert, der die vorherige Hintergrundfarbe angibt, oder CLR_DEFAULT wenn die Hintergrundfarbe die Standardfarbe ist.

Beispiel

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

Aktiviert oder deaktiviert den Laufrahmenmodus für das aktuelle Statusleisten-Steuerelement.

BOOL SetMarquee(
    BOOL fMarqueeMode,
    int nInterval);

Parameter

fMarqueeMode
[in] TRUE um den Laufrahmenmodus zu aktivieren oder FALSE den Festrahmenmodus zu deaktivieren.

nInterval
[in] Zeit in Millisekunden zwischen Aktualisierungen der Festrahmenanimation.

Rückgabewert

Diese Methode gibt immer TRUE zurück.

Hinweise

Wenn der Marquee-Modus aktiviert ist, wird die Statusleiste animiert und scrollt wie ein Zeichen auf einem Theaterzelt.

Diese Methode sendet die PBM_SETMARQUEE Nachricht, die im Windows SDK beschrieben wird.

Beispiel

Im ersten Codebeispiel wird die Variable definiert, m_progressCtrldie für den programmgesteuerten Zugriff auf das Statusleisten-Steuerelement verwendet wird. Diese Variable wird im nächsten Beispiel verwendet.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

Das nächste Codebeispiel wird gestartet und beendet die Animation zum Scrollen des Laufrahmens.The next code example starts and stops the marquee scrolling animation.

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

Legt die aktuelle Position des Statusleistensteuerelements wie angegeben fest nPos , und legt die Leiste erneut fest, um die neue Position widerzuspiegeln.

int SetPos(int nPos);

Parameter

nPos
Neue Position des Statusleisten-Steuerelements.

Rückgabewert

Die vorherige Position des Statusleisten-Steuerelements.

Hinweise

Die Position des Statusleisten-Steuerelements ist nicht die physische Position auf dem Bildschirm, sondern zwischen dem oberen und unteren Bereich angegeben.SetRange

Beispiel

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

Legt die oberen und unteren Grenzwerte des Bereichs des Statusleistensteuerelements fest und schränkt den Balken um, um die neuen Bereiche widerzuspiegeln.

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

Parameter

nLower
Gibt die untere Grenze des Bereichs an (Standardwert ist Null).

nUpper
Gibt die obere Grenze des Bereichs an (Standardwert ist 100).

Hinweise

Die Memberfunktion SetRange32 legt den 32-Bit-Bereich für das Statussteuerelement fest.

Beispiel

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

Legt den Status des aktuellen Statusanzeige-Steuerelements fest.

int SetState(int iState);

Parameter

iState
[in] Der Zustand zum Festlegen der Statusanzeige. Verwenden Sie einen der folgenden Werte:

  • PBST_NORMAL -Im Gange
  • PBST_ERROR -Fehler
  • PBST_PAUSED -Pausiert

Rückgabewert

Der vorherige Status des aktuellen Statusanzeige-Steuerelements.

Hinweise

Diese Methode sendet die PBM_SETSTATE Nachricht, die im Windows SDK beschrieben wird.

Beispiel

Im ersten Codebeispiel wird die Variable definiert, m_progressCtrldie für den programmgesteuerten Zugriff auf das Statusleisten-Steuerelement verwendet wird. Diese Variable wird im nächsten Beispiel verwendet.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

Im nächsten Codebeispiel wird der Status des aktuellen Statusleisten-Steuerelements auf "Angehalten" oder "In Bearbeitung" festgelegt.

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

Gibt den Schrittinkrement für ein Statusleisten-Steuerelement an.

int SetStep(int nStep);

Parameter

nStep
Neuer Schritt inkrementierung.

Rückgabewert

Der vorherige Schritt inkrementierung.

Hinweise

Der Schrittschritt ist der Betrag, um den ein Aufruf der CProgressCtrl::StepIt aktuellen Position der Statusanzeige erhöht.

Der Standardschrittschritt ist 10.

Beispiel

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

Wechselt die aktuelle Position für ein Statusleisten-Steuerelement um den Schritt inkrementiert und die Leiste neu gezeichnet, um die neue Position widerzuspiegeln.

int StepIt();

Rückgabewert

Die vorherige Position des Statusleisten-Steuerelements.

Hinweise

Die Schrittinkrementierung wird von der CProgressCtrl::SetStep Memberfunktion festgelegt.

Beispiel

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

Siehe auch

MFC-Beispiel CMNCTRL2
CWnd Klasse
Hierarchiediagramm