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 CProgressCtrl
finden Sie unter "Steuerelemente und Verwenden" CProgressCtrl
.
Vererbungshierarchie
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 Create
dann 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 pParentWnd
beschreibt.
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_progressCtrl
die 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_progressCtrl
die 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_progressCtrl
die 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_progressCtrl
die 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 GangePBST_ERROR
-FehlerPBST_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_progressCtrl
die 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();