Udostępnij za pośrednictwem


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

CObject

CCmdTarget

CWnd

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 Createmetodę , 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 pParentWndklienta .

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_progressCtrlktó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_progressCtrlktó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_progressCtrlktó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_progressCtrlktó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 toku
  • PBST_ERROR -Błąd
  • PBST_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_progressCtrlktó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();

Zobacz też

Przykład MFC CMNCTRL2
CWnd Klasa
Wykres hierarchii