Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Fornece a funcionalidade do controlo comum da barra de progresso do Windows.
Sintaxe
class CProgressCtrl : public CWnd
Membros
Construtores Públicos
| Nome | Description |
|---|---|
CProgressCtrl::CProgressCtrl |
Constrói um CProgressCtrl objeto. |
Métodos Públicos
| Nome | Description |
|---|---|
CProgressCtrl::Create |
Cria um controlo na barra de progresso e liga-o a um CProgressCtrl objeto. |
CProgressCtrl::CreateEx |
Cria um controlo de progresso com os estilos estendidos do Windows especificados e anexa-o a um CProgressCtrl objeto. |
CProgressCtrl::GetBarColor |
Recebe a cor da barra indicadora de progresso do controlo atual da barra. |
CProgressCtrl::GetBkColor |
Fica com a cor de fundo da barra de progresso atual. |
CProgressCtrl::GetPos |
Obtém a posição atual da barra de progresso. |
CProgressCtrl::GetRange |
Obtém os limites inferior e superior do alcance do controlo da barra de progresso. |
CProgressCtrl::GetState |
Obtém o estado do controlo atual da barra de progresso. |
CProgressCtrl::GetStep |
Recupera o incremento de passo para a barra de progresso do controlo atual da barra. |
CProgressCtrl::OffsetPos |
Avança a posição atual de um controlo de barra de progresso num incremento especificado e redesenha a barra para refletir a nova posição. |
CProgressCtrl::SetBarColor |
Define a cor da barra indicadora de progresso no controlo atual da barra de progresso. |
CProgressCtrl::SetBkColor |
Define a cor de fundo da barra de progresso. |
CProgressCtrl::SetMarquee |
Ativa ou desativa o modo marquee para o controlo atual da barra de progresso. |
CProgressCtrl::SetPos |
Define a posição atual para o controlo da barra de progresso e volta a desenhar a barra para refletir a nova posição. |
CProgressCtrl::SetRange |
Define os intervalos mínimo e máximo para um controlo na barra de progresso e redesenha a barra para refletir os novos intervalos. |
CProgressCtrl::SetState |
Define o estado do controlo atual da barra de progresso. |
CProgressCtrl::SetStep |
Especifica o incremento de passo para um controlo de barra de progresso. |
CProgressCtrl::StepIt |
Avança a posição atual para um controlo da barra de progresso pelo incremento de passo (ver SetStep) e redesenha a barra para refletir a nova posição. |
Observações
Um controlo de barra de progresso é uma janela que uma aplicação pode usar para indicar o progresso de uma operação longa. Consiste num retângulo que é gradualmente preenchido, da esquerda para a direita, com a cor de destaque do sistema à medida que a operação avança.
Um controlo de barra de progresso tem um alcance e uma posição atual. O intervalo representa a duração total da operação, e a posição atual representa o progresso que a aplicação fez na conclusão da operação. O procedimento da janela usa o intervalo e a posição atual para determinar a percentagem da barra de progresso a preencher com a cor de destaque. Como o intervalo e os valores atuais da posição são expressos como inteiros com sinal, o intervalo possível dos valores atuais da posição é de -2.147.483.648 a 2.147.483.647, inclusive.
Para mais informações sobre a utilização CProgressCtrlde , veja Controlos e Utilização CProgressCtrlde .
Hierarquia de herança
CProgressCtrl
Requerimentos
Cabeçalho:afxcmn.h
CProgressCtrl::CProgressCtrl
Constrói um CProgressCtrl objeto.
CProgressCtrl();
Observações
Depois de construir o CProgressCtrl objeto, chame CProgressCtrl::Create para criar o controlo da barra de progresso.
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
Cria um controlo na barra de progresso e liga-o a um CProgressCtrl objeto.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parâmetros
dwStyle
Especifica o estilo do controlo da barra de progresso. Aplique qualquer combinação de estilos de janelas descritos no CreateWindow SDK do Windows, além dos seguintes estilos de controlo na barra de progresso, ao controlo:
PBS_VERTICALMostra a informação de progresso verticalmente, de cima a baixo. Sem esta bandeira, o controlo da barra de progresso é exibido horizontalmente, da esquerda para a direita.PBS_SMOOTHMostra preenchimento gradual e suave no controlo da barra de progresso. Sem esta bandeira, o controlo enche-se com blocos.
rect
Especifica o tamanho e a posição do controlo da barra de progresso. Pode ser um CRect objeto ou uma RECT estrutura. Como o controlo deve ser uma janela filho, as coordenadas especificadas são relativas à área cliente do pParentWnd.
pParentWnd
Especifica a janela pai do controlo da barra de progresso, normalmente um CDialog. Não pode ser NULL.
nID
Especifica o ID do controlo da barra de progresso.
Valor de retorno
TRUE se o CProgressCtrl objeto for criado com sucesso; caso contrário, FALSE.
Observações
Constroem um CProgressCtrl objeto em dois passos. Primeiro, chamar o construtor, que cria o CProgressCtrl objeto, e depois chamar Create, que cria o controlo da barra de progresso.
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
Cria um controlo (uma janela filha) e associa-o ao CProgressCtrl objeto.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parâmetros
dwExStyle
Especifica o estilo estendido do controlo que está a ser criado. Para uma lista de estilos extensos do Windows, consulte o dwExStyle parâmetro para CreateWindowEx no SDK do Windows.
dwStyle
Especifica o estilo do controlo da barra de progresso. Aplique qualquer combinação de estilos de janelas descrita no CreateWindow SDK do Windows.
rect
Uma referência a uma RECT estrutura que descreve o tamanho e a posição da janela a ser criada, em coordenadas cliente de pParentWnd.
pParentWnd
Um apontador para a janela que é o pai do controlo.
nID
O ID da janela criança do controlo.
Valor de retorno
Não nulo se for bem-sucedido; caso contrário, 0.
Observações
Use CreateEx em vez de Create para aplicar estilos estendidos do Windows, especificados pelo prefácio WS_EX_de estilo estendido do Windows .
CProgressCtrl::GetBarColor
Recebe a cor da barra indicadora de progresso do controlo atual da barra.
COLORREF GetBarColor() const;
Valor de retorno
A cor da barra de progresso atual, representada como um COLORREF valor, ou CLR_DEFAULT se a cor indicadora da barra de progresso for a cor padrão.
Observações
Este método envia a PBM_GETBARCOLOR mensagem, que é descrita no SDK do Windows.
CProgressCtrl::GetBkColor
Fica com a cor de fundo da barra de progresso atual.
COLORREF GetBkColor() const;
Valor de retorno
A cor de fundo da barra de progresso atual, representada como um COLORREF valor.
Observações
Este método envia a PBM_GETBKCOLOR mensagem, que é descrita no SDK do Windows.
CProgressCtrl::GetPos
Recupera a posição atual da barra de progresso.
int GetPos();
Valor de retorno
A posição do controlo da barra de progresso.
Observações
A posição do controlo da barra de progresso não é a localização física no ecrã, mas sim entre a gama superior e inferior indicada em SetRange.
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
Obtém os limites inferior e superior, ou alcance, atuais do controlo da barra de progresso.
void GetRange(
int& nLower,
int& nUpper);
Parâmetros
nLower
Uma referência a um inteiro que recebe o limite inferior do controlo da barra de progresso.
nUpper
Uma referência a um inteiro que recebe o limite superior do controlo da barra de progresso.
Observações
Esta função copia os valores dos limites inferior e superior dos inteiros referenciados por nLower e nUpper, respetivamente.
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
Obtém o estado do controlo atual da barra de progresso.
int GetState() const;
Valor de retorno
O estado do controlo atual da barra de progresso, que é um dos seguintes valores:
| Valor | Estado |
|---|---|
| PBST_NORMAL | Em curso |
| PBST_ERROR | Erro |
| PBST_PAUSED | Em pausa |
Observações
Este método envia a PBM_GETSTATE mensagem, que é descrita no SDK do Windows.
Example
O primeiro exemplo de código define a variável, m_progressCtrl, que é usada para aceder programaticamente ao controlo da barra de progresso. Esta variável é usada no exemplo seguinte.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
O próximo exemplo de código recupera o estado do controlo atual da barra de progresso.
// 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
Recupera o incremento de passo para a barra de progresso do controlo atual da barra.
int GetStep() const;
Valor de retorno
O incremento gradual da barra de progresso.
Observações
O incremento de passo é o valor pelo qual uma chamada para CProgressCtrl::StepIt aumenta a posição atual da barra de progresso.
Este método envia a PBM_GETSTEP mensagem, que é descrita no SDK do Windows.
Example
O primeiro exemplo de código define a variável, m_progressCtrl, que é usada para aceder programaticamente ao controlo da barra de progresso. Esta variável é usada no exemplo seguinte.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
O próximo exemplo de código recupera o incremento de passo do controlo atual da barra de progresso.
// 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
Avança a posição atual do controlo da barra de progresso pelo incremento especificado por nPos e redesenha a barra para refletir a nova posição.
int OffsetPos(int nPos);
Parâmetros
nPos
Montante para avançar na posição.
Valor de retorno
A posição anterior do controlo da barra de progresso.
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
Define a cor da barra indicadora de progresso no controlo atual da barra de progresso.
COLORREF SetBarColor(COLORREF clrBar);
Parâmetros
clrBar
[dentro] Um COLORREF valor que especifica a nova cor da barra indicadora de progresso. Especifique CLR_DEFAULT para fazer a barra de progresso usar a cor predefinida.
Valor de retorno
A cor anterior da barra indicadora de progresso, representada como um COLORREF valor, ou CLR_DEFAULT se a cor da barra indicadora de progresso for a cor padrão.
Observações
O SetBarColor método define a cor da barra de progresso apenas se um tema do Windows Vista não estiver ativo.
Este método envia a PBM_SETBARCOLOR mensagem, que é descrita no SDK do Windows.
Example
O primeiro exemplo de código define a variável, m_progressCtrl, que é usada para aceder programaticamente ao controlo da barra de progresso. Esta variável é usada no exemplo seguinte.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
O próximo exemplo de código altera a cor da barra de progresso para vermelho, verde, azul ou o padrão.
// 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
Define a cor de fundo da barra de progresso.
COLORREF SetBkColor(COLORREF clrNew);
Parâmetros
clrNew
Um COLORREF valor que especifica a nova cor de fundo. Especifique o CLR_DEFAULT valor para usar a cor de fundo padrão da barra de progresso.
Valor de retorno
O COLORREF valor que indica a cor de fundo anterior, ou CLR_DEFAULT se a cor de fundo for a cor padrão.
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
Ativa ou desativa o modo marquee para o controlo atual da barra de progresso.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
Parâmetros
fMarqueeMode
[dentro] TRUE para ativar o modo marquee, ou FALSE para desligar o modo marquee.
nInterval
[dentro] Tempo em milissegundos entre as atualizações da animação do letreiro.
Valor de retorno
Este método devolve TRUEsempre .
Observações
Quando o modo marquee está ativado, a barra de progresso é animada e desliza como um letreiro numa tenda de cinema.
Este método envia a PBM_SETMARQUEE mensagem, que é descrita no SDK do Windows.
Example
O primeiro exemplo de código define a variável, m_progressCtrl, que é usada para aceder programaticamente ao controlo da barra de progresso. Esta variável é usada no exemplo seguinte.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
O próximo exemplo de código inicia e para a animação de scroll da marquee.
// 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
Define a posição atual do controlo da barra de progresso conforme especificado por nPos e redesenha a barra para refletir a nova posição.
int SetPos(int nPos);
Parâmetros
nPos
Nova posição do controlo da barra de progresso.
Valor de retorno
A posição anterior do controlo da barra de progresso.
Observações
A posição do controlo da barra de progresso não é a localização física no ecrã, mas sim entre a gama superior e inferior indicada em SetRange.
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
Define os limites superior e inferior do alcance do controlo da barra de progresso e redesenha a barra para refletir os novos intervalos.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
Parâmetros
nLower
Especifica o limite inferior do intervalo (o padrão é zero).
nUpper
Especifica o limite superior do intervalo (o padrão é 100).
Observações
A função SetRange32 membro define o intervalo de 32 bits para o controlo de progresso.
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
Define o estado do controlo atual da barra de progresso.
int SetState(int iState);
Parâmetros
iState
[dentro] O estado para definir a barreira de progresso. Utilize um dos seguintes valores:
-
PBST_NORMAL- Em curso -
PBST_ERROR- Erro -
PBST_PAUSED- Pausado
Valor de retorno
O estado anterior do controlo atual da barra de progresso.
Observações
Este método envia a PBM_SETSTATE mensagem, que é descrita no SDK do Windows.
Example
O primeiro exemplo de código define a variável, m_progressCtrl, que é usada para aceder programaticamente ao controlo da barra de progresso. Esta variável é usada no exemplo seguinte.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
O próximo exemplo de código define o estado do controlo atual da barra de progresso para Paused ou Em Progresso.
// 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
Especifica o incremento de passo para um controlo de barra de progresso.
int SetStep(int nStep);
Parâmetros
nStep
Novo incremento de passos.
Valor de retorno
O incremento do passo anterior.
Observações
O incremento de passo é o valor pelo qual uma chamada para CProgressCtrl::StepIt aumenta a posição atual da barra de progresso.
O incremento padrão de degraus é 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
Avança a posição atual para um controlo da barra de progresso pelo incremento de passo e volta a desenhar a barra para refletir a nova posição.
int StepIt();
Valor de retorno
A posição anterior do controlo da barra de progresso.
Observações
O incremento de escalões é definido pela CProgressCtrl::SetStep função elemento.
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();