Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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_VERTICALA 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_SMOOTHA 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();