CProgressCtrl
Klasa
Udostępnia funkcje kontrolki paska postępu dla systemu Windows.
Składnia
class CProgressCtrl : public CWnd
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CProgressCtrl::CProgressCtrl |
CProgressCtrl Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CProgressCtrl::Create |
Tworzy kontrolkę paska postępu i dołącza ją do CProgressCtrl obiektu. |
CProgressCtrl::CreateEx |
Tworzy kontrolkę postępu z określonymi stylami rozszerzonymi systemu Windows i dołącza ją do CProgressCtrl obiektu. |
CProgressCtrl::GetBarColor |
Pobiera kolor paska wskaźnika postępu dla bieżącej kontrolki paska postępu. |
CProgressCtrl::GetBkColor |
Pobiera kolor tła bieżącego paska postępu. |
CProgressCtrl::GetPos |
Pobiera bieżące położenie paska postępu. |
CProgressCtrl::GetRange |
Pobiera dolne i górne limity zakresu kontrolki paska postępu. |
CProgressCtrl::GetState |
Pobiera stan bieżącej kontrolki paska postępu. |
CProgressCtrl::GetStep |
Pobiera przyrost kroku dla paska postępu bieżącego kontrolki paska postępu. |
CProgressCtrl::OffsetPos |
Przechodzi bieżącą pozycję kontrolki paska postępu przez określony przyrost i ponownie rysuje pasek, aby odzwierciedlić nową pozycję. |
CProgressCtrl::SetBarColor |
Ustawia kolor paska wskaźnika postępu w bieżącej kontrolce paska postępu. |
CProgressCtrl::SetBkColor |
Ustawia kolor tła paska postępu. |
CProgressCtrl::SetMarquee |
Włącza lub wyłącza tryb markizy dla bieżącej kontrolki paska postępu. |
CProgressCtrl::SetPos |
Ustawia bieżące położenie kontrolki paska postępu i ponownie rysuje pasek, aby odzwierciedlić nową pozycję. |
CProgressCtrl::SetRange |
Ustawia minimalne i maksymalne zakresy dla kontrolki paska postępu i ponownie rysuje pasek, aby odzwierciedlić nowe zakresy. |
CProgressCtrl::SetState |
Ustawia stan bieżącej kontrolki paska postępu. |
CProgressCtrl::SetStep |
Określa przyrost kroku dla kontrolki paska postępu. |
CProgressCtrl::StepIt |
Przesuwa bieżącą pozycję kontrolki paska postępu przez przyrost (zobacz SetStep ) i ponownie rysuje pasek, aby odzwierciedlić nową pozycję. |
Uwagi
Kontrolka paska postępu to okno, za pomocą którego aplikacja może wskazywać postęp długiej operacji. Składa się z prostokąta, który jest wypełniany stopniowo, od lewej do prawej, z kolorem wyróżnienia systemu w miarę postępu operacji.
Kontrolka paska postępu ma zakres i bieżące położenie. Zakres reprezentuje całkowity czas trwania operacji, a bieżące położenie reprezentuje postęp, który aplikacja poczyniła w kierunku ukończenia operacji. Procedura okna używa zakresu i bieżącego położenia, aby określić procent paska postępu do wypełnienia kolorem wyróżnienia. Ponieważ wartości zakresu i bieżącej pozycji są wyrażone jako liczby całkowite ze znakiem, możliwy zakres bieżących wartości pozycji wynosi od -2 147 483 648 do 2147 483 647 włącznie.
Aby uzyskać więcej informacji na temat korzystania z programu CProgressCtrl
, zobacz Controls and Using CProgressCtrl
.
Hierarchia dziedziczenia
CProgressCtrl
Wymagania
Nagłówek: afxcmn.h
CProgressCtrl::CProgressCtrl
CProgressCtrl
Tworzy obiekt.
CProgressCtrl();
Uwagi
Po utworzeniu obiektu wywołaj metodę CProgressCtrl
CProgressCtrl::Create
, aby utworzyć kontrolkę paska postępu.
Przykład
// Create a progress control object on the stack.
CProgressCtrl myCtrl;
// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;
CProgressCtrl::Create
Tworzy kontrolkę paska postępu i dołącza ją do CProgressCtrl
obiektu.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Określa styl kontrolki paska postępu. Zastosuj dowolną kombinację stylów okien przypisanych w CreateWindow
zestawie Windows SDK, oprócz następujących stylów sterowania paska postępu, do kontrolki:
PBS_VERTICAL
Wyświetla informacje o postępie w pionie, u góry do dołu. Bez tej flagi kontrolka paska postępu jest wyświetlana w poziomie, od lewej do prawej.PBS_SMOOTH
Wyświetla stopniowe, płynne wypełnianie kontrolki paska postępu. Bez tej flagi kontrolka wypełni bloki.
rect
Określa rozmiar i położenie kontrolki paska postępu. Może to być CRect
obiekt lub RECT
struktura. Ponieważ kontrolka musi być oknem podrzędnym, określone współrzędne są względem obszaru klienta obiektu pParentWnd
.
pParentWnd
Określa nadrzędne okno kontrolki paska postępu, zwykle CDialog
. Nie może mieć wartości NULL.
nID
Określa identyfikator kontrolki paska postępu.
Wartość zwracana
Wartość TRUE, jeśli CProgressCtrl
obiekt został pomyślnie utworzony; w przeciwnym razie wartość FALSE.
Uwagi
Obiekt jest konstruowany CProgressCtrl
w dwóch krokach. Najpierw wywołaj konstruktor, który tworzy CProgressCtrl
obiekt, a następnie wywołaj Create
metodę , która tworzy kontrolkę paska postępu.
Przykład
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
Tworzy kontrolkę (okno podrzędne) i kojarzy ją z obiektem CProgressCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwExStyle
Określa rozszerzony styl tworzonej kontrolki. Aby uzyskać listę rozszerzonych stylów systemu Windows, zobacz dwExStyle
parametr dla CreateWindowEx
w zestawie Windows SDK.
dwStyle
Określa styl kontrolki paska postępu. Zastosuj dowolną kombinację stylów okien opisanych w CreateWindow
zestawie Windows SDK.
rect
Odwołanie do RECT
struktury opisującej rozmiar i położenie okna do utworzenia w współrzędnych pParentWnd
klienta .
pParentWnd
Wskaźnik do okna, który jest elementem nadrzędnym kontrolki.
nID
Identyfikator okna podrzędnego kontrolki.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Create
Zamiast CreateEx
stosować rozszerzone style systemu Windows określone w rozszerzonym prefiksie WS_EX_
stylu systemu Windows.
CProgressCtrl::GetBarColor
Pobiera kolor paska wskaźnika postępu dla bieżącej kontrolki paska postępu.
COLORREF GetBarColor() const;
Wartość zwracana
Kolor bieżącego paska postępu reprezentowany COLORREF
jako wartość lub CLR_DEFAULT
kolor paska wskaźnika postępu jest domyślnym kolorem.
Uwagi
Ta metoda wysyła PBM_GETBARCOLOR
komunikat opisany w zestawie SDK systemu Windows.
CProgressCtrl::GetBkColor
Pobiera kolor tła bieżącego paska postępu.
COLORREF GetBkColor() const;
Wartość zwracana
Kolor tła bieżącego paska postępu reprezentowany COLORREF
jako wartość.
Uwagi
Ta metoda wysyła PBM_GETBKCOLOR
komunikat opisany w zestawie SDK systemu Windows.
CProgressCtrl::GetPos
Pobiera bieżącą pozycję paska postępu.
int GetPos();
Wartość zwracana
Położenie kontrolki paska postępu.
Uwagi
Pozycja kontrolki paska postępu nie jest lokalizacją fizyczną na ekranie, ale raczej znajduje się między górnym i dolnym zakresem wskazanym w elem SetRange
.
Przykład
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
Pobiera bieżące dolne i górne limity lub zakres kontrolki paska postępu.
void GetRange(
int& nLower,
int& nUpper);
Parametry
nLower
Odwołanie do liczby całkowitej odbierające dolną granicę kontrolki paska postępu.
nUpper
Odwołanie do liczby całkowitej odbierające górny limit kontrolki paska postępu.
Uwagi
Ta funkcja kopiuje wartości dolnych i górnych limitów do liczb całkowitych, do których odwołuje się nLower
odpowiednio , i nUpper
.
Przykład
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
Pobiera stan bieżącej kontrolki paska postępu.
int GetState() const;
Wartość zwracana
Stan bieżącej kontrolki paska postępu, która jest jedną z następujących wartości:
Wartość | Województwo |
---|---|
PBST_NORMAL | W toku |
PBST_ERROR | Błąd |
PBST_PAUSED | Wstrzymana |
Uwagi
Ta metoda wysyła PBM_GETSTATE
komunikat opisany w zestawie SDK systemu Windows.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_progressCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki paska postępu. Ta zmienna jest używana w następnym przykładzie.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Następny przykład kodu pobiera stan bieżącej kontrolki paska postępu.
// 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
Pobiera przyrost kroku dla paska postępu bieżącego kontrolki paska postępu.
int GetStep() const;
Wartość zwracana
Przyrost kroku paska postępu.
Uwagi
Przyrost kroku to kwota, o jaką wywołanie CProgressCtrl::StepIt
zwiększa bieżącą pozycję paska postępu.
Ta metoda wysyła PBM_GETSTEP
komunikat opisany w zestawie SDK systemu Windows.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_progressCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki paska postępu. Ta zmienna jest używana w następnym przykładzie.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Następny przykład kodu pobiera przyrost kroku bieżącej kontrolki paska postępu.
// 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
Przechodzi bieżącą pozycję kontrolki paska postępu przez przyrost określony przez nPos
i ponownie rysuje pasek, aby odzwierciedlić nową pozycję.
int OffsetPos(int nPos);
Parametry
nPos
Kwota, aby przejść do pozycji.
Wartość zwracana
Poprzednie położenie kontrolki paska postępu.
Przykład
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
Ustawia kolor paska wskaźnika postępu w bieżącej kontrolce paska postępu.
COLORREF SetBarColor(COLORREF clrBar);
Parametry
clrBar
[in] COLORREF
Wartość określająca nowy kolor paska wskaźnika postępu. Określ CLR_DEFAULT
, aby spowodować użycie domyślnego koloru paska postępu.
Wartość zwracana
Poprzedni kolor paska wskaźnika postępu, reprezentowany COLORREF
jako wartość lub CLR_DEFAULT
kolor paska wskaźnika postępu jest domyślnym kolorem.
Uwagi
Metoda SetBarColor
ustawia kolor paska postępu tylko wtedy, gdy motyw systemu Windows Vista nie jest w mocy.
Ta metoda wysyła PBM_SETBARCOLOR
komunikat opisany w zestawie SDK systemu Windows.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_progressCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki paska postępu. Ta zmienna jest używana w następnym przykładzie.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Następny przykład kodu zmienia kolor paska postępu na czerwony, zielony, niebieski lub domyślny.
// 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
Ustawia kolor tła paska postępu.
COLORREF SetBkColor(COLORREF clrNew);
Parametry
clrNew
COLORREF
Wartość określająca nowy kolor tła. CLR_DEFAULT
Określ wartość, aby użyć domyślnego koloru tła paska postępu.
Wartość zwracana
Wartość COLORREF
wskazująca poprzedni kolor tła lub CLR_DEFAULT
kolor tła jest domyślnym kolorem.
Przykład
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
Włącza lub wyłącza tryb markizy dla bieżącej kontrolki paska postępu.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
Parametry
fMarqueeMode
[in] TRUE
aby włączyć tryb markizy lub FALSE
wyłączyć tryb markizy.
nInterval
[in] Czas w milisekundach między aktualizacjami animacji markizy.
Wartość zwracana
Ta metoda zawsze zwraca wartość TRUE
.
Uwagi
Gdy tryb markizy jest włączony, pasek postępu jest animowany i przewija się jak znak na markizy teatru.
Ta metoda wysyła PBM_SETMARQUEE
komunikat opisany w zestawie SDK systemu Windows.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_progressCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki paska postępu. Ta zmienna jest używana w następnym przykładzie.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Następny przykład kodu rozpoczyna się i zatrzymuje animację przewijania markizy.
// 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
Ustawia bieżącą pozycję kontrolki paska postępu określoną przez nPos
i ponownie rysuje pasek, aby odzwierciedlić nową pozycję.
int SetPos(int nPos);
Parametry
nPos
Nowe położenie kontrolki paska postępu.
Wartość zwracana
Poprzednie położenie kontrolki paska postępu.
Uwagi
Pozycja kontrolki paska postępu nie jest lokalizacją fizyczną na ekranie, ale raczej znajduje się między górnym i dolnym zakresem wskazanym w elem SetRange
.
Przykład
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
Ustawia górne i dolne limity zakresu kontrolki paska postępu i ponownie rysuje pasek, aby odzwierciedlić nowe zakresy.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
Parametry
nLower
Określa dolny limit zakresu (wartość domyślna to zero).
nUpper
Określa górny limit zakresu (wartość domyślna to 100).
Uwagi
Funkcja SetRange32
składowa ustawia zakres 32-bitowy dla kontrolki postępu.
Przykład
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
Ustawia stan bieżącej kontrolki paska postępu.
int SetState(int iState);
Parametry
iState
[in] Stan ustawiania paska postępu. Użyj jednej z następujących wartości:
PBST_NORMAL
-W tokuPBST_ERROR
-BłądPBST_PAUSED
-Wstrzymana
Wartość zwracana
Poprzedni stan bieżącej kontrolki paska postępu.
Uwagi
Ta metoda wysyła PBM_SETSTATE
komunikat opisany w zestawie SDK systemu Windows.
Przykład
Pierwszy przykład kodu definiuje zmienną , m_progressCtrl
która jest używana do programowego uzyskiwania dostępu do kontrolki paska postępu. Ta zmienna jest używana w następnym przykładzie.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Następny przykład kodu ustawia stan bieżącej kontrolki paska postępu na Wstrzymane lub W toku.
// 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
Określa przyrost kroku dla kontrolki paska postępu.
int SetStep(int nStep);
Parametry
nStep
Nowy krok zwiększa się.
Wartość zwracana
Poprzedni krok zwiększa się.
Uwagi
Inkrementacja kroku to ilość, o jaką wywołanie CProgressCtrl::StepIt
zwiększa bieżącą pozycję paska postępu.
Domyślny przyrost kroku to 10.
Przykład
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
Przesuwa bieżącą pozycję kontrolki paska postępu przez przyrost i ponownie rysuje pasek, aby odzwierciedlić nową pozycję.
int StepIt();
Wartość zwracana
Poprzednie położenie kontrolki paska postępu.
Uwagi
Przyrost kroku jest ustawiany przez funkcję składową CProgressCtrl::SetStep
.
Przykład
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();