Clase CProgressCtrl
Proporciona la funcionalidad del control de barra de progreso común de Windows.
Sintaxis
class CProgressCtrl : public CWnd
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
CProgressCtrl::CProgressCtrl |
Construye un objeto CProgressCtrl . |
Métodos públicos
Nombre | Descripción |
---|---|
CProgressCtrl::Create |
Crea un control de la barra de progreso y lo adjunta a un objeto CProgressCtrl . |
CProgressCtrl::CreateEx |
Crea un control de la barra de progreso con los estilos extendidos de Windows especificados y lo adjunta a un objeto CProgressCtrl . |
CProgressCtrl::GetBarColor |
Establece el color de progreso actual de la barra de progreso actual del control. |
CProgressCtrl::GetBkColor |
Esta función se usa para establecer el color de fondo de la barra de progreso actual. |
CProgressCtrl::GetPos |
Obtiene la posición actual de la barra de progreso. |
CProgressCtrl::GetRange |
Obtiene los límites inferiores y superiores del intervalo del control de barra de progreso. |
CProgressCtrl::GetState |
Obtiene el estado del control de la barra de progreso actual. |
CProgressCtrl::GetStep |
Recupera el incremento de paso para la barra de progreso del control de barra de progreso actual. |
CProgressCtrl::OffsetPos |
Desplaza la posición actual de un control de barra de progreso por un incremento especificado y vuelve a dibujar la barra para reflejar la nueva posición. |
CProgressCtrl::SetBarColor |
Obtiene el color de progreso actual de la barra de progreso actual del control. |
CProgressCtrl::SetBkColor |
Establece el color de fondo de la barra de progreso. |
CProgressCtrl::SetMarquee |
Activa o desactiva el modo de marquesina para el control de barra de progreso actual. |
CProgressCtrl::SetPos |
Establece la posición actual de un control de barra de progreso y vuelve a dibujar la barra para reflejar la nueva posición. |
CProgressCtrl::SetRange |
Establece los intervalos mínimo y máximo de un control de barra de progreso y vuelve a dibujar la barra para reflejar los nuevos intervalos. |
CProgressCtrl::SetState |
Establece el estado del control de la barra de progreso actual. |
CProgressCtrl::SetStep |
Especifica el incremento de paso para un control de barra de progreso. |
CProgressCtrl::StepIt |
Desplaza la posición actual de un control de barra de progreso por un incremento paso a paso (consulte SetStep ) y vuelve a dibujar la barra para reflejar la nueva posición. |
Comentarios
El la ventana de control de la barra de progreso es una aplicación puede usar para indicar visualmente el progreso de una operación de larga duración. Está compuesto de un rectángulo que se rellena gradualmente, de izquierda a derecha, con el color de resaltado del sistema a medida que una operación progresa.
El control de la barra de progreso tiene un intervalo y una posición actual. El intervalo representa la duración total de la operación y la posición actual representa el progreso realizado por la aplicación para completar la operación. El procedimiento de ventana usa el intervalo y la posición actual para determinar el porcentaje de la barra de progreso que se va a rellenar con el color de resaltado. Dado que los valores de rango y posición actual se expresan como enteros con signo, el intervalo posible de valores de posición actual es de -2.147.483.648 a 2.147.483.647 inclusive.
Para obtener más información sobre el uso de la clase CProgressCtrl
, consulte Controles y Uso de CProgressCtrl
.
Jerarquía de herencia
CProgressCtrl
Requisitos
Encabezado: afxcmn.h
CProgressCtrl::CProgressCtrl
Construye un objeto CProgressCtrl
.
CProgressCtrl();
Comentarios
Después de construir el objeto CProgressCtrl
, llame a CProgressCtrl::Create
para crear el control de barra de progreso.
Ejemplo
// Create a progress control object on the stack.
CProgressCtrl myCtrl;
// Create a progress control object on the heap.
CProgressCtrl *pmyCtrl = new CProgressCtrl;
CProgressCtrl::Create
Crea un control de la barra de progreso y lo adjunta a un objeto CProgressCtrl
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwStyle
Especifica el estilo del control de barra de progreso. Aplique cualquier combinación de estilos de ventana descritos en CreateWindow
en Windows SDK, además de los siguientes estilos de control de barra de progreso, al control:
PBS_VERTICAL
Muestra la información de progreso verticalmente, de arriba abajo. Sin esta marca, el control de barra de progreso se muestra horizontalmente, de izquierda a derecha.PBS_SMOOTH
Muestra el relleno gradual y suave en el control de barra de progreso. Sin esta marca, el control se rellenará con bloques.
rect
Especifica el tamaño y la posición del control de barra de progreso. Puede ser un objeto CRect
o una estructura RECT
. Dado que el control debe ser una ventana secundaria, las coordenadas especificadas son relativas al área cliente de pParentWnd
.
pParentWnd
El valor de este parámetro se usa para especificar la ventana primaria del control de información sobre la barra de progreso, que suele ser un elemento CDialog
. No debe ser NULL.
nID
Especifica el id. del control de barra de progreso.
Valor devuelto
El valor TRUE si el objeto CProgressCtrl
se crea correctamente; en caso contrario, será FALSE.
Comentarios
El objeto CProgressCtrl
se construye en dos pasos. En primer lugar, llama al constructor, que crea el objeto CProgressCtrl
y, a continuación, llama a Create
, que crea el control de barra de progreso.
Ejemplo
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
Esta función puede usarse para crear un control (una ventana secundaria) y asociarlo con el objeto CProgressCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parámetros
dwExStyle
El valor de este parámetro se usa para especificar el estilo extendido del control que se va a crear. Para obtener una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle
de la función CreateWindowEx
en Windows SDK.
dwStyle
Especifica el estilo del control de barra de progreso. Aplique cualquier combinación de estilos de ventana descritos en CreateWindow
en Windows SDK.
rect
Una referencia a una estructura RECT
describiendo el tamaño y la posición de la ventana a crear, en las coordenadas cliente de pParentWnd
.
pParentWnd
Un puntero a la ventana que constituye el elemento primario del control.
nID
El identificador de ventana secundaria del control.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Usa la función CreateEx
, en lugar de Create
, para aplicar estilos extendidos de Windows. Estos se especifican en el prefacio de estilo extendido WS_EX_
de Windows.
CProgressCtrl::GetBarColor
Establece el color de progreso actual de la barra de progreso actual del control.
COLORREF GetBarColor() const;
Valor devuelto
Color de la barra de progreso actual, representada como un valor COLORREF
, o CLR_DEFAULT
si el color de la barra del indicador de progreso es el color predeterminado.
Comentarios
Al usar este método, se envía el mensaje PBM_GETBARCOLOR
, que se describe en Windows SDK.
CProgressCtrl::GetBkColor
Esta función se usa para establecer el color de fondo de la barra de progreso actual.
COLORREF GetBkColor() const;
Valor devuelto
Color de fondo de la barra de progreso actual, representado como un valor COLORREF
.
Comentarios
Al usar este método, se envía el mensaje PBM_GETBKCOLOR
, que se describe en Windows SDK.
CProgressCtrl::GetPos
Recupera la posición actual de la barra de progreso.
int GetPos();
Valor devuelto
La posición del control de la barra de progreso.
Comentarios
La posición del control de barra de progreso no es la ubicación física en la pantalla, sino que se encuentra entre el intervalo superior e inferior indicado en SetRange
.
Ejemplo
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
Obtiene los límites actuales inferiores y superiores, o el intervalo del control de barra de progreso.
void GetRange(
int& nLower,
int& nUpper);
Parámetros
nLower
Referencia a un entero que recibe el límite inferior del control de la barra de progreso.
nUpper
Referencia a un entero que recibe el límite superior del control de la barra de progreso.
Comentarios
Esta función copia los valores de los límites inferior y superior en los enteros a los que hace referencia nLower
y nUpper
, respectivamente.
Ejemplo
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
Obtiene el estado del control de la barra de progreso actual.
int GetState() const;
Valor devuelto
Estado del control de barra de progreso actual, que es uno de los siguientes valores:
Valor | Valor |
---|---|
PBST_NORMAL | En curso |
PBST_ERROR | Error |
PBST_PAUSED | En pausa |
Comentarios
Al usar este método, se envía el mensaje PBM_GETSTATE
, que se describe en Windows SDK.
Ejemplo
El primer ejemplo de código define la variable, m_progressCtrl
, que se utiliza para acceder mediante programación al control de barra de progreso. Esta variable se utiliza en el siguiente ejemplo.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
El siguiente ejemplo de código recupera el estado del control de la barra de progreso actual.
// 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 el incremento de paso para la barra de progreso del control de barra de progreso actual.
int GetStep() const;
Valor devuelto
Incremento de paso de la barra de progreso.
Comentarios
El incremento de paso es la cantidad que se incrementa la posición actual de la barra de progreso con cada llamada a CProgressCtrl::StepIt
.
Al usar este método, se envía el mensaje PBM_GETSTEP
, que se describe en Windows SDK.
Ejemplo
El primer ejemplo de código define la variable, m_progressCtrl
, que se utiliza para acceder mediante programación al control de barra de progreso. Esta variable se utiliza en el siguiente ejemplo.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
El siguiente ejemplo de código recupera el incremento de paso del control de la barra de progreso actual.
// 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
Desplaza la posición actual de un control de barra de progreso por un incremento especificado por nPos
y vuelve a dibujar la barra para reflejar la nueva posición.
int OffsetPos(int nPos);
Parámetros
nPos
Cantidad para avanzar la posición.
Valor devuelto
La posición previa del control de la barra de progreso.
Ejemplo
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
Obtiene el color de progreso actual de la barra de progreso actual del control.
COLORREF SetBarColor(COLORREF clrBar);
Parámetros
clrBar
[in] Valor COLORREF
que especifica el nuevo color de la barra de indicador de progreso. Especifique CLR_DEFAULT
para que la barra de progreso use su color predeterminado.
Valor devuelto
Color previo de la barra de progreso de indicador, representada como un valor COLORREF
, o CLR_DEFAULT
si el color de la barra del indicador de progreso es el color predeterminado.
Comentarios
El método SetBarColor
establece el color de la barra de progreso solo si un tema de Windows Vista no está en vigor.
Al usar este método, se envía el mensaje PBM_SETBARCOLOR
, que se describe en Windows SDK.
Ejemplo
El primer ejemplo de código define la variable, m_progressCtrl
, que se utiliza para acceder mediante programación al control de barra de progreso. Esta variable se utiliza en el siguiente ejemplo.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
En el ejemplo de código siguiente se cambia el color de la barra de progreso a rojo, verde, azul o predeterminado.
// 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
Establece el color de fondo de la barra de progreso.
COLORREF SetBkColor(COLORREF clrNew);
Parámetros
clrNew
Un valor COLORREF
que especifica el nuevo color de fondo. Especifique el valor CLR_DEFAULT
para usar el color de fondo predeterminado para la barra de progreso.
Valor devuelto
El valor COLORREF
que indica el color de fondo anterior o si el color de fondo de CLR_DEFAULT
es el color predeterminado.
Ejemplo
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
Activa o desactiva el modo de marquesina para el control de barra de progreso actual.
BOOL SetMarquee(
BOOL fMarqueeMode,
int nInterval);
Parámetros
fMarqueeMode
[in] TRUE
para activar el modo de marquesina o FALSE
para desactivar el modo de marquesina.
nInterval
[in] Tiempo en milisegundos entre las actualizaciones de la animación de marquesina.
Valor devuelto
Este método devuelve siempre TRUE
.
Comentarios
Cuando el modo de marquesina está activado, la barra de progreso se anima y se desplaza como un signo en una marquesina de teatro.
Al usar este método, se envía el mensaje PBM_SETMARQUEE
, que se describe en Windows SDK.
Ejemplo
El primer ejemplo de código define la variable, m_progressCtrl
, que se utiliza para acceder mediante programación al control de barra de progreso. Esta variable se utiliza en el siguiente ejemplo.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
El siguiente ejemplo de código inicia y detiene la animación de desplazamiento de la marca.
// 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
Establece la posición actual de un control de barra de progreso como especifica nPos
y vuelve a dibujar la barra para reflejar la nueva posición.
int SetPos(int nPos);
Parámetros
nPos
La nueva posición del control de la barra de progreso.
Valor devuelto
La posición previa del control de la barra de progreso.
Comentarios
La posición del control de barra de progreso no es la ubicación física en la pantalla, sino que se encuentra entre el intervalo superior e inferior indicado en SetRange
.
Ejemplo
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
Establece los límites superior e inferior del intervalo del control de barra de progreso y vuelve a dibujar la barra para reflejar los nuevos intervalos.
void SetRange(
short nLower,
short nUpper);
void SetRange32(
int nLower,
int nUpper);
Parámetros
nLower
Especifica el límite inferior del intervalo (el valor predeterminado es cero).
nUpper
Especifica el límite superior del intervalo (el valor predeterminado es 100).
Comentarios
La función miembro SetRange32
establece el intervalo de 32 bits para el control de progreso.
Ejemplo
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
Establece el estado del control de la barra de progreso actual.
int SetState(int iState);
Parámetros
iState
[in] El estado para establecer la barra de progreso. Utilice uno de los valores siguientes:
PBST_NORMAL
: En cursoPBST_ERROR
: ErrorPBST_PAUSED
: En pausa
Valor devuelto
El estado anterior del control de la barra de progreso actual.
Comentarios
Al usar este método, se envía el mensaje PBM_SETSTATE
, que se describe en Windows SDK.
Ejemplo
El primer ejemplo de código define la variable, m_progressCtrl
, que se utiliza para acceder mediante programación al control de barra de progreso. Esta variable se utiliza en el siguiente ejemplo.
// Variable to access the progress control
CProgressCtrl m_progressCtrl;
El siguiente ejemplo de código establece el estado del control de la de barra de progreso actual como En pausa o En curso.
// 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 el incremento de paso para un control de barra de progreso.
int SetStep(int nStep);
Parámetros
nStep
Nuevo incremento de paso.
Valor devuelto
Incremento del paso anterior.
Comentarios
El incremento de paso es la cantidad que se incrementa con cada llamada a CProgressCtrl::StepIt
la posición actual de la barra de progreso.
El incremento de paso predeterminado es 10.
Ejemplo
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
Desplaza la posición actual de un control de barra de progreso por un incremento paso a paso y vuelve a dibujar la barra para reflejar la nueva posición.
int StepIt();
Valor devuelto
La posición previa del control de la barra de progreso.
Comentarios
La función miembro CProgressCtrl::SetStep
establece el incremento de paso.
Ejemplo
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();