CProgressCtrl
Třída
Poskytuje funkce běžného ovládacího prvku indikátoru průběhu Windows.
Syntaxe
class CProgressCtrl : public CWnd
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CProgressCtrl::CProgressCtrl |
CProgressCtrl Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CProgressCtrl::Create |
Vytvoří ovládací prvek indikátoru průběhu a připojí ho k objektu CProgressCtrl . |
CProgressCtrl::CreateEx |
Vytvoří ovládací prvek průběhu se zadanými rozšířenými styly Windows a připojí ho k objektu CProgressCtrl . |
CProgressCtrl::GetBarColor |
Získá barvu indikátoru průběhu pro aktuální ovládací prvek indikátoru průběhu. |
CProgressCtrl::GetBkColor |
Získá barvu pozadí aktuálního indikátoru průběhu. |
CProgressCtrl::GetPos |
Získá aktuální pozici indikátoru průběhu. |
CProgressCtrl::GetRange |
Získá dolní a horní limity rozsahu ovládacího prvku indikátoru průběhu. |
CProgressCtrl::GetState |
Získá stav aktuálního ovládacího prvku indikátoru průběhu. |
CProgressCtrl::GetStep |
Načte krok inkrementace indikátoru průběhu aktuálního ovládacího prvku indikátoru průběhu. |
CProgressCtrl::OffsetPos |
Posune aktuální pozici ovládacího prvku indikátoru průběhu o zadaný přírůstek a překreslí pruh tak, aby odrážel novou pozici. |
CProgressCtrl::SetBarColor |
Nastaví barvu indikátoru průběhu v aktuálním ovládacím prvku indikátoru průběhu. |
CProgressCtrl::SetBkColor |
Nastaví barvu pozadí indikátoru průběhu. |
CProgressCtrl::SetMarquee |
Zapne nebo vypne režim výběru pro aktuální ovládací prvek indikátoru průběhu. |
CProgressCtrl::SetPos |
Nastaví aktuální pozici ovládacího prvku indikátoru průběhu a překreslí pruh tak, aby odrážel novou pozici. |
CProgressCtrl::SetRange |
Nastaví minimální a maximální rozsahy pro ovládací prvek indikátoru průběhu a překreslí pruh tak, aby odrážel nové rozsahy. |
CProgressCtrl::SetState |
Nastaví stav aktuálního ovládacího prvku indikátoru průběhu. |
CProgressCtrl::SetStep |
Určuje přírůstek kroku pro ovládací prvek indikátoru průběhu. |
CProgressCtrl::StepIt |
Posune aktuální pozici pro ovládací prvek indikátoru průběhu o krok přírůstku (viz SetStep ) a překreslí pruh tak, aby odrážel novou pozici. |
Poznámky
Ovládací prvek indikátoru průběhu je okno, které může aplikace použít k označení průběhu zdlouhavé operace. Skládá se z obdélníku, který je postupně vyplněný zleva doprava, s barvou zvýraznění systému při průběhu operace.
Ovládací prvek indikátoru průběhu má rozsah a aktuální pozici. Rozsah představuje celkovou dobu trvání operace a aktuální pozice představuje průběh, který aplikace provedla k dokončení operace. Procedura okna používá oblast a aktuální pozici k určení procenta indikátoru průběhu k vyplnění barvou zvýraznění. Vzhledem k tomu, že se hodnoty rozsahu a aktuální pozice vyjadřují jako celá čísla se signy, je možný rozsah hodnot aktuální pozice od -2 147 483 648 do 2 147 483 647 včetně.
Další informace o použití CProgressCtrl
naleznete v tématu Ovládací prvky a použití CProgressCtrl
.
Hierarchie dědičnosti
CProgressCtrl
Požadavky
Záhlaví: afxcmn.h
CProgressCtrl::CProgressCtrl
CProgressCtrl
Vytvoří objekt.
CProgressCtrl();
Poznámky
Po vytvoření objektu CProgressCtrl
voláním CProgressCtrl::Create
vytvořte ovládací prvek indikátoru průběhu.
Příklad
// Create a progress control object on the stack.
CProgressCtrl myCtrl;
// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;
CProgressCtrl::Create
Vytvoří ovládací prvek indikátoru průběhu a připojí ho k objektu CProgressCtrl
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Určuje styl ovládacího prvku indikátoru průběhu. U ovládacího prvku použijte libovolnou kombinaci stylů oken, které jsou přiřazené v CreateWindow
sadě Windows SDK, kromě následujících stylů ovládacích prvků indikátoru průběhu:
PBS_VERTICAL
Zobrazí informace o průběhu svisle, shora dolů. Bez tohoto příznaku se ovládací prvek indikátoru průběhu zobrazuje vodorovně a zleva doprava.PBS_SMOOTH
Zobrazí postupné a hladké vyplňování ovládacího prvku indikátoru průběhu. Bez tohoto příznaku ovládací prvek vyplní bloky.
rect
Určuje velikost a umístění ovládacího prvku indikátoru průběhu. Může to být CRect
objekt nebo RECT
struktura. Vzhledem k tomu, že ovládací prvek musí být podřízeným oknem, jsou zadané souřadnice relativní k klientské oblasti objektu pParentWnd
.
pParentWnd
Určuje nadřazené okno ovládacího prvku indikátoru průběhu, obvykle .CDialog
Nesmí mít hodnotu NULL.
nID
Určuje ID ovládacího prvku indikátoru průběhu.
Návratová hodnota
TRUE, pokud CProgressCtrl
je objekt úspěšně vytvořen; jinak NEPRAVDA.
Poznámky
Objekt vytvoříte CProgressCtrl
ve dvou krocích. Nejprve zavolejte konstruktor, který vytvoří CProgressCtrl
objekt, a potom volání Create
, který vytvoří ovládací prvek indikátoru průběhu.
Příklad
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
Vytvoří ovládací prvek (podřízené okno) a přidruží ho k objektu CProgressCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwExStyle
Určuje rozšířený styl vytvářeného ovládacího prvku. Seznam rozšířených stylů Windows najdete v parametru dwExStyle
sady CreateWindowEx
Windows SDK.
dwStyle
Určuje styl ovládacího prvku indikátoru průběhu. Použijte libovolnou kombinaci stylů oken popsaných v CreateWindow
sadě Windows SDK.
rect
Odkaz na RECT
strukturu popisující velikost a umístění okna, které se má vytvořit, v souřadnicích pParentWnd
klienta .
pParentWnd
Ukazatel na okno, které je nadřazeným objektem ovládacího prvku.
nID
ID podřízeného okna ovládacího prvku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Create
Místo CreateEx
použití rozšířených stylů Windows určených předmětu WS_EX_
rozšířeného stylu Windows .
CProgressCtrl::GetBarColor
Získá barvu indikátoru průběhu pro aktuální ovládací prvek indikátoru průběhu.
COLORREF GetBarColor() const;
Návratová hodnota
Barva aktuálního indikátoru průběhu, reprezentovaná jako COLORREF
hodnota nebo CLR_DEFAULT
pokud je barva indikátoru průběhu výchozí barvou.
Poznámky
Tato metoda odešle PBM_GETBARCOLOR
zprávu popsanou v sadě Windows SDK.
CProgressCtrl::GetBkColor
Získá barvu pozadí aktuálního indikátoru průběhu.
COLORREF GetBkColor() const;
Návratová hodnota
Barva pozadí aktuálního indikátoru průběhu vyjádřená jako COLORREF
hodnota
Poznámky
Tato metoda odešle PBM_GETBKCOLOR
zprávu popsanou v sadě Windows SDK.
CProgressCtrl::GetPos
Načte aktuální pozici indikátoru průběhu.
int GetPos();
Návratová hodnota
Pozice ovládacího prvku indikátoru průběhu.
Poznámky
Umístění ovládacího prvku indikátoru průběhu není fyzické umístění na obrazovce, ale je mezi horním a dolním rozsahem uvedeným v SetRange
.
Příklad
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
Získá aktuální dolní a horní limity nebo rozsah ovládacího prvku indikátoru průběhu.
void GetRange(
int& nLower,
int& nUpper);
Parametry
nLower
Odkaz na celé číslo, které přijímá dolní limit ovládacího prvku indikátoru průběhu.
nUpper
Odkaz na celé číslo, které přijímá horní limit ovládacího prvku indikátoru průběhu.
Poznámky
Tato funkce zkopíruje hodnoty dolních a horních limitů na celá čísla, na která nLower
odkazuje a nUpper
v uvedeném pořadí.
Příklad
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
Získá stav aktuálního ovládacího prvku indikátoru průběhu.
int GetState() const;
Návratová hodnota
Stav aktuálního ovládacího prvku indikátoru průběhu, což je jedna z následujících hodnot:
Hodnota | Stát |
---|---|
PBST_NORMAL | Rozpracované |
PBST_ERROR | Chyba |
PBST_PAUSED | Pozastaveno |
Poznámky
Tato metoda odešle PBM_GETSTATE
zprávu popsanou v sadě Windows SDK.
Příklad
První příklad kódu definuje proměnnou, m_progressCtrl
která se používá pro programový přístup k ovládacímu prvku indikátoru průběhu. Tato proměnná se používá v dalším příkladu.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Následující příklad kódu načte stav aktuálního ovládacího prvku indikátoru průběhu.
// 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
Načte krok inkrementace indikátoru průběhu aktuálního ovládacího prvku indikátoru průběhu.
int GetStep() const;
Návratová hodnota
Krok inkrementace indikátoru průběhu
Poznámky
Zvýšení kroku je množství, o které volání CProgressCtrl::StepIt
zvýší aktuální pozici indikátoru průběhu.
Tato metoda odešle PBM_GETSTEP
zprávu popsanou v sadě Windows SDK.
Příklad
První příklad kódu definuje proměnnou, m_progressCtrl
která se používá pro programový přístup k ovládacímu prvku indikátoru průběhu. Tato proměnná se používá v dalším příkladu.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Další příklad kódu načte krok přírůstku aktuálního ovládacího prvku indikátoru průběhu.
// 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
Posune aktuální pozici ovládacího prvku indikátoru průběhu o přírůstek určený nPos
a překreslí pruh tak, aby odrážel novou pozici.
int OffsetPos(int nPos);
Parametry
nPos
Částka pro posun pozice.
Návratová hodnota
Předchozí pozice ovládacího prvku indikátoru průběhu.
Příklad
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
Nastaví barvu indikátoru průběhu v aktuálním ovládacím prvku indikátoru průběhu.
COLORREF SetBarColor(COLORREF clrBar);
Parametry
clrBar
[v] Hodnota COLORREF
, která určuje novou barvu indikátoru průběhu. Zadejte CLR_DEFAULT
, aby indikátor průběhu používal výchozí barvu.
Návratová hodnota
Předchozí barva indikátoru průběhu, reprezentovaná jako COLORREF
hodnota nebo CLR_DEFAULT
pokud je barva indikátoru průběhu výchozí barvou.
Poznámky
Metoda SetBarColor
nastaví barvu indikátoru průběhu pouze v případě, že se motiv systému Windows Vista nepoužívá.
Tato metoda odešle PBM_SETBARCOLOR
zprávu popsanou v sadě Windows SDK.
Příklad
První příklad kódu definuje proměnnou, m_progressCtrl
která se používá pro programový přístup k ovládacímu prvku indikátoru průběhu. Tato proměnná se používá v dalším příkladu.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Následující příklad kódu změní barvu indikátoru průběhu na červenou, zelenou, modrou nebo výchozí.
// 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
Nastaví barvu pozadí indikátoru průběhu.
COLORREF SetBkColor(COLORREF clrNew);
Parametry
clrNew
Hodnota COLORREF
, která určuje novou barvu pozadí. CLR_DEFAULT
Zadejte hodnotu, která má použít výchozí barvu pozadí pro indikátor průběhu.
Návratová hodnota
Hodnota COLORREF
označující předchozí barvu pozadí nebo CLR_DEFAULT
pokud je výchozí barva pozadí.
Příklad
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
Zapne nebo vypne režim výběru pro aktuální ovládací prvek indikátoru průběhu.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
Parametry
fMarqueeMode
[v] TRUE
pokud chcete režim výběru zapnout nebo FALSE
vypnout režim výběru.
nInterval
[v] Čas v milisekundách mezi aktualizacemi animace ohraničení
Návratová hodnota
Tato metoda vždy vrátí TRUE
.
Poznámky
Když je zapnutý režim ohraničení, indikátor průběhu je animovaný a posunuje se jako symbol na kino.
Tato metoda odešle PBM_SETMARQUEE
zprávu popsanou v sadě Windows SDK.
Příklad
První příklad kódu definuje proměnnou, m_progressCtrl
která se používá pro programový přístup k ovládacímu prvku indikátoru průběhu. Tato proměnná se používá v dalším příkladu.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Následující příklad kódu se spustí a zastaví animaci posouvání v oblasti.
// 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
Nastaví aktuální pozici ovládacího prvku indikátoru průběhu podle zadání nPos
a překreslí pruh tak, aby odrážel novou pozici.
int SetPos(int nPos);
Parametry
nPos
Nová pozice ovládacího prvku indikátoru průběhu
Návratová hodnota
Předchozí pozice ovládacího prvku indikátoru průběhu.
Poznámky
Umístění ovládacího prvku indikátoru průběhu není fyzické umístění na obrazovce, ale je mezi horním a dolním rozsahem uvedeným v SetRange
.
Příklad
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
Nastaví horní a dolní limity rozsahu indikátoru průběhu a překreslí pruh tak, aby odrážel nové rozsahy.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
Parametry
nLower
Určuje dolní limit rozsahu (výchozí hodnota je nula).
nUpper
Určuje horní limit rozsahu (výchozí hodnota je 100).
Poznámky
Členová funkce SetRange32
nastaví 32bitový rozsah pro ovládací prvek průběhu.
Příklad
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
Nastaví stav aktuálního ovládacího prvku indikátoru průběhu.
int SetState(int iState);
Parametry
iState
[v] Stav pro nastavení indikátoru průběhu Použijte jednu z následujících hodnot:
PBST_NORMAL
- ProbíháPBST_ERROR
-ChybaPBST_PAUSED
-Pozastaveno
Návratová hodnota
Předchozí stav aktuálního ovládacího prvku indikátoru průběhu.
Poznámky
Tato metoda odešle PBM_SETSTATE
zprávu popsanou v sadě Windows SDK.
Příklad
První příklad kódu definuje proměnnou, m_progressCtrl
která se používá pro programový přístup k ovládacímu prvku indikátoru průběhu. Tato proměnná se používá v dalším příkladu.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
Následující příklad kódu nastaví stav aktuálního ovládacího prvku indikátoru průběhu na Pozastaveno nebo Probíhá.
// 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
Určuje přírůstek kroku pro ovládací prvek indikátoru průběhu.
int SetStep(int nStep);
Parametry
nStep
Nový krok se zvýší.
Návratová hodnota
Předchozí krok se zvýší.
Poznámky
Přírůstek kroku je množství, o které volání zvýší CProgressCtrl::StepIt
aktuální pozici indikátoru průběhu.
Výchozí přírůstek kroku je 10.
Příklad
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
Posune aktuální pozici ovládacího prvku indikátoru průběhu o krok a překreslí pruh tak, aby odrážel novou pozici.
int StepIt();
Návratová hodnota
Předchozí pozice ovládacího prvku indikátoru průběhu.
Poznámky
Krok přírůstku nastaví CProgressCtrl::SetStep
členová funkce.
Příklad
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();