Megosztás a következőn keresztül:


CProgressCtrl osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

A Windows általános folyamatjelző vezérlőjének funkcióit biztosítja.

Szemantika

class CProgressCtrl : public CWnd

Tagok

Nyilvános konstruktorok

Név Description
CProgressCtrl::CProgressCtrl Egy CProgressCtrl objektumot hoz létre.

Nyilvános metódusok

Név Description
CProgressCtrl::Create Létrehoz egy folyamatjelző sáv vezérlőelemet, és csatolja egy CProgressCtrl objektumhoz.
CProgressCtrl::CreateEx Létrehoz egy folyamatvezérlőt a windowsos bővített stílusokkal, és csatolja egy CProgressCtrl objektumhoz.
CProgressCtrl::GetBarColor Lekéri a folyamatjelző sáv színét az aktuális folyamatjelző vezérlőelemhez.
CProgressCtrl::GetBkColor Lekéri az aktuális folyamatjelző sáv háttérszínét.
CProgressCtrl::GetPos Lekéri a folyamatjelző sáv aktuális pozícióját.
CProgressCtrl::GetRange Lekéri a folyamatjelző vezérlőelem tartományának alsó és felső korlátait.
CProgressCtrl::GetState Lekéri a folyamatjelző aktuális vezérlőjének állapotát.
CProgressCtrl::GetStep Lekéri az aktuális folyamatjelző folyamatsávjának lépésenkénti növekményét.
CProgressCtrl::OffsetPos Egy folyamatjelző sáv vezérlőjének aktuális pozícióját egy megadott növekménysel növeli, és újrarajzolva a sávot, hogy tükrözze az új pozíciót.
CProgressCtrl::SetBarColor A folyamatjelző sáv színét állítja be az aktuális folyamatjelző vezérlőelemben.
CProgressCtrl::SetBkColor Beállítja a folyamatjelző sáv háttérszínét.
CProgressCtrl::SetMarquee Be- vagy kikapcsolja a kijelölési módot az aktuális folyamatjelző vezérlőelemhez.
CProgressCtrl::SetPos Beállítja egy folyamatjelző sáv vezérlőjének aktuális pozícióját, és újrarajzozza a sávot, hogy tükrözze az új pozíciót.
CProgressCtrl::SetRange Beállítja a folyamatjelző vezérlőelem minimális és maximális tartományait, és újrarajzozza a sávot az új tartományoknak megfelelően.
CProgressCtrl::SetState Az aktuális folyamatjelző vezérlőelem állapotát állítja be.
CProgressCtrl::SetStep A folyamatjelző vezérlőelem lépésenkénti növekményét adja meg.
CProgressCtrl::StepIt A lépéslépéssel előrehalad egy folyamatjelző sáv vezérlőelemének aktuális pozícióját (lásd SetStep) és újrarajzolva a sávot az új pozíciónak megfelelően.

Megjegyzések

A folyamatjelző sáv vezérlőelem egy ablak, amellyel az alkalmazás egy hosszú művelet előrehaladását jelezheti. Ez egy téglalapból áll, amely balról jobbra fokozatosan kitöltve, a művelet előrehaladása során a rendszer kiemelési színével.

A folyamatjelző sáv vezérlőelemének tartománya és aktuális pozíciója van. A tartomány a művelet teljes időtartamát jelöli, az aktuális pozíció pedig azt a folyamatot jelöli, amelyet az alkalmazás a művelet végrehajtása során elért. Az ablak eljárás a tartományt és az aktuális pozíciót használja annak meghatározására, hogy a folyamatjelző sáv hány százalékát töltse ki a kiemelés színével. Mivel a tartomány és az aktuális pozícióértékek aláírt egész számként vannak kifejezve, az aktuális pozícióértékek lehetséges tartománya -2 147 483 648 és 2 147 483 647 közötti lehet.

A használatról CProgressCtrltovábbi információt a Vezérlők és a Használat CProgressCtrlcímű témakörben talál.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CProgressCtrl

Requirements

Fejléc:afxcmn.h

CProgressCtrl::CProgressCtrl

Egy CProgressCtrl objektumot hoz létre.

CProgressCtrl();

Megjegyzések

Az objektum létrehozása CProgressCtrl után hívja meg CProgressCtrl::Create a folyamatjelző vezérlőelem létrehozását.

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

Létrehoz egy folyamatjelző sáv vezérlőelemet, és csatolja egy CProgressCtrl objektumhoz.

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

Paraméterek

dwStyle
A folyamatjelző vezérlőelem stílusát adja meg. Alkalmazza a Windows SDK-ban CreateWindow leírható ablakstílusok tetszőleges kombinációját a következő folyamatsáv-vezérlőstílusok mellett a vezérlőre:

  • PBS_VERTICAL A folyamatinformációkat függőlegesen, felülről lefelé jeleníti meg. A jelző nélkül a folyamatjelző vezérlőelem vízszintesen, balról jobbra jelenik meg.

  • PBS_SMOOTH A folyamatjelző sáv vezérlőjének fokozatos, sima kitöltését jeleníti meg. E jelző nélkül a vezérlő blokkokkal fog kitölteni.

rect
A folyamatjelző vezérlőelem méretét és pozícióját határozza meg. CRect Lehet objektum vagy RECT struktúra. Mivel a vezérlőnek gyermekablaknak kell lennie, a megadott koordináták a pParentWnd.

pParentWnd
A folyamatjelző vezérlő szülőablakát adja meg, általában egy CDialog. Nem lehet NULL.

nID
A folyamatjelző vezérlőelem azonosítóját adja meg.

Visszaadott érték

IGAZ, ha az CProgressCtrl objektum sikeresen létrejött, ellenkező esetben HAMIS.

Megjegyzések

Egy objektumot CProgressCtrl két lépésben hozhat létre. Először hívja meg a konstruktort, amely létrehozza az CProgressCtrl objektumot, majd hívja meg Createazt, amely létrehozza a folyamatjelző vezérlőt.

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

Létrehoz egy vezérlőt (egy gyermekablakot), és társítja azt az CProgressCtrl objektummal.

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

Paraméterek

dwExStyle
A létrehozott vezérlőelem kiterjesztett stílusát adja meg. A bővített Windows-stílusok listáját a dwExStyle Windows SDK paraméterében CreateWindowEx találja.

dwStyle
A folyamatjelző vezérlőelem stílusát adja meg. Alkalmazza a Windows SDK-ban CreateWindow leírt ablakstílusok bármilyen kombinációját.

rect
Hivatkozás a RECT létrehozandó ablak méretét és pozícióját leíró struktúrára a következő ügyfélkoordinátáiban pParentWnd: .

pParentWnd
A vezérlő szülőablakára mutató mutató.

nID
A vezérlő gyermekablak-azonosítója.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Create A CreateEx bővített Windows-stílusok helyett használja a Windows bővített stílus előszavában WS_EX_megadott stílusokat.

CProgressCtrl::GetBarColor

Lekéri a folyamatjelző sáv színét az aktuális folyamatjelző vezérlőelemhez.

COLORREF GetBarColor() const;

Visszaadott érték

Az aktuális folyamatjelző sáv színe értékként COLORREF , vagy CLR_DEFAULT ha az állapotjelző sáv színe az alapértelmezett szín.

Megjegyzések

Ez a metódus elküldi a PBM_GETBARCOLOR Windows SDK-ban leírt üzenetet.

CProgressCtrl::GetBkColor

Lekéri az aktuális folyamatjelző sáv háttérszínét.

COLORREF GetBkColor() const;

Visszaadott érték

Az aktuális folyamatjelző sáv háttérszíne, amely értékként van ábrázolva COLORREF .

Megjegyzések

Ez a metódus elküldi a PBM_GETBKCOLOR Windows SDK-ban leírt üzenetet.

CProgressCtrl::GetPos

Lekéri a folyamatjelző sáv aktuális pozícióját.

int GetPos();

Visszaadott érték

A folyamatjelző sáv vezérlőjének pozíciója.

Megjegyzések

A folyamatjelző vezérlőelem helye nem a képernyőn látható fizikai hely, hanem a felső és az alsó tartomány SetRangeközött van.

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

Lekéri a folyamatjelző vezérlőelem aktuális alsó és felső korlátját vagy tartományát.

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

Paraméterek

nLower
Hivatkozás egy egész számra, amely a folyamatjelző vezérlőelem alsó korlátját kapja.

nUpper
A folyamatjelző felső korlátját fogadó egész számra mutató hivatkozás.

Megjegyzések

Ez a függvény az alsó és a felső korlát értékeit az és nUpperaz általuk nLower hivatkozott egész számokra másolja.

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

Lekéri a folyamatjelző aktuális vezérlőjének állapotát.

int GetState() const;

Visszaadott érték

Az aktuális folyamatjelző vezérlőelem állapota, amely az alábbi értékek egyike:

Érték Állam
PBST_NORMAL Folyamatban
PBST_ERROR Error
PBST_PAUSED Szüneteltetett

Megjegyzések

Ez a metódus elküldi a PBM_GETSTATE Windows SDK-ban leírt üzenetet.

Example

Az első kódpéldában definiáljuk azt a változót, m_progressCtrlamely programozott módon éri el a folyamatjelző vezérlőt. Ezt a változót a következő példában használjuk.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

A következő kódpéldában lekéri az aktuális folyamatjelző vezérlő állapotát.

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

Lekéri az aktuális folyamatjelző folyamatsávjának lépésenkénti növekményét.

int GetStep() const;

Visszaadott érték

A folyamatjelző sáv lépésenkénti növekménye.

Megjegyzések

A lépés növekménye az az összeg, amellyel egy hívás CProgressCtrl::StepIt növeli az állapotsor aktuális pozícióját.

Ez a metódus elküldi a PBM_GETSTEP Windows SDK-ban leírt üzenetet.

Example

Az első kódpéldában definiáljuk azt a változót, m_progressCtrlamely programozott módon éri el a folyamatjelző vezérlőt. Ezt a változót a következő példában használjuk.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

A következő kódpéldában lekéri az aktuális folyamatjelző vezérlő lépésenkénti növekményét.

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

A folyamatjelző vezérlő aktuális pozícióját a megadott nPos növekménysel növeli, és újrarajzolva a sávot, hogy tükrözze az új pozíciót.

int OffsetPos(int nPos);

Paraméterek

nPos
A pozíciót előreléptetendő összeg.

Visszaadott érték

A folyamatjelző vezérlőelem előző pozíciója.

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

A folyamatjelző sáv színét állítja be az aktuális folyamatjelző vezérlőelemben.

COLORREF SetBarColor(COLORREF clrBar);

Paraméterek

clrBar
[in] Az COLORREF állapotjelző sáv új színét meghatározó érték. Adja meg CLR_DEFAULT , hogy a folyamatjelző sáv az alapértelmezett színt használja.

Visszaadott érték

Az állapotjelző sáv előző színe, amely értékként COLORREF van ábrázolva, vagy CLR_DEFAULT ha az állapotjelző sáv színe az alapértelmezett szín.

Megjegyzések

A SetBarColor metódus csak akkor állítja be a folyamatjelző sáv színét, ha egy Windows Vista-téma nincs érvényben.

Ez a metódus elküldi a PBM_SETBARCOLOR Windows SDK-ban leírt üzenetet.

Example

Az első kódpéldában definiáljuk azt a változót, m_progressCtrlamely programozott módon éri el a folyamatjelző vezérlőt. Ezt a változót a következő példában használjuk.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

A következő példakód a folyamatjelző sáv színét pirosra, zöldre, kékre vagy alapértelmezettre módosítja.

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

Beállítja a folyamatjelző sáv háttérszínét.

COLORREF SetBkColor(COLORREF clrNew);

Paraméterek

clrNew
Az COLORREF új háttérszínt meghatározó érték. Adja meg az CLR_DEFAULT állapotsor alapértelmezett háttérszínét használni kívánt értéket.

Visszaadott érték

Az COLORREF előző háttérszínt jelző érték, vagy CLR_DEFAULT ha a háttérszín az alapértelmezett szín.

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

Be- vagy kikapcsolja a kijelölési módot az aktuális folyamatjelző vezérlőelemhez.

BOOL SetMarquee(
    BOOL fMarqueeMode,
    int nInterval);

Paraméterek

fMarqueeMode
[in] TRUE a kijelölő mód bekapcsolásához vagy FALSE a kijelölő mód kikapcsolásához.

nInterval
[in] Ezredmásodpercben az animáció frissítései között eltelt idő.

Visszaadott érték

Ez a metódus mindig visszaadja a függvényt TRUE.

Megjegyzések

Ha a kijelölő mód be van kapcsolva, a folyamatjelző sáv animált lesz, és úgy görget, mint egy előjel egy színházi előjelen.

Ez a metódus elküldi a PBM_SETMARQUEE Windows SDK-ban leírt üzenetet.

Example

Az első kódpéldában definiáljuk azt a változót, m_progressCtrlamely programozott módon éri el a folyamatjelző vezérlőt. Ezt a változót a következő példában használjuk.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

A következő példakód elindítja és leállítja a marquee görgetési animációt.

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

A folyamatjelző vezérlőelem aktuális pozícióját állítja be a megadott nPos módon, és újrarajzolva a sávot az új pozíciónak megfelelően.

int SetPos(int nPos);

Paraméterek

nPos
A folyamatjelző vezérlő új pozíciója.

Visszaadott érték

A folyamatjelző vezérlőelem előző pozíciója.

Megjegyzések

A folyamatjelző vezérlőelem helye nem a képernyőn látható fizikai hely, hanem a felső és az alsó tartomány SetRangeközött van.

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

Beállítja a folyamatjelző vezérlőelem tartományának felső és alsó korlátait, és újrarajzozza a sávot az új tartományoknak megfelelően.

void SetRange(
    short nLower,
    short nUpper);

void SetRange32(
    int nLower,
    int nUpper);

Paraméterek

nLower
A tartomány alsó korlátját adja meg (az alapértelmezett érték nulla).

nUpper
A tartomány felső korlátját adja meg (az alapértelmezett érték 100).

Megjegyzések

A tagfüggvény SetRange32 beállítja a folyamatvezérlő 32 bites tartományát.

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

Az aktuális folyamatjelző vezérlőelem állapotát állítja be.

int SetState(int iState);

Paraméterek

iState
[in] A folyamatjelző sáv beállításának állapota. Használja az alábbi értékek egyikét:

  • PBST_NORMAL - Folyamatban
  • PBST_ERROR -Hiba
  • PBST_PAUSED -Szüneteltetett

Visszaadott érték

Az aktuális folyamatjelző vezérlőelem előző állapota.

Megjegyzések

Ez a metódus elküldi a PBM_SETSTATE Windows SDK-ban leírt üzenetet.

Example

Az első kódpéldában definiáljuk azt a változót, m_progressCtrlamely programozott módon éri el a folyamatjelző vezérlőt. Ezt a változót a következő példában használjuk.

// Variable to access the progress control
CProgressCtrl m_progressCtrl;

A következő kódpéldában az aktuális folyamatjelző vezérlőelem állapota Szüneteltetve vagy Folyamatban állapotra van állítva.

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

A folyamatjelző vezérlőelem lépésenkénti növekményét adja meg.

int SetStep(int nStep);

Paraméterek

nStep
Új lépés növekménye.

Visszaadott érték

Az előző lépés növekménye.

Megjegyzések

A lépésenkénti növekmény az az összeg, amellyel a hívás CProgressCtrl::StepIt növeli a folyamatjelző sáv aktuális pozícióját.

Az alapértelmezett lépésenkénti növekmény 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

A lépéslépéssel előrehalad egy folyamatjelző sáv vezérlőelemének aktuális pozíciója, és újrarajzolva a sávot, hogy tükrözze az új pozíciót.

int StepIt();

Visszaadott érték

A folyamatjelző vezérlőelem előző pozíciója.

Megjegyzések

A lépésenkénti növekményt a CProgressCtrl::SetStep tagfüggvény állítja be.

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

Lásd még

MFC-minta CMNCTRL2
CWnd osztály
hierarchiadiagram