Compartir a través de


Acerca de los controles de barra de progreso

Una barra de progreso es una ventana que una aplicación puede usar para indicar el progreso de una operación larga.

Consta de un rectángulo animado a medida que avanza una operación.

En la ilustración siguiente se muestra una barra de progreso que no usa estilos visuales.

captura de pantalla de una barra de progreso que agrega rectángulos en una línea para indicar el progreso

En la ilustración siguiente se muestra una barra de progreso mediante estilos visuales. La apariencia del control variará en función del sistema operativo y del tema seleccionado. Para obtener más información, vea Estilos visuales.

captura de pantalla de una barra de progreso que alarga un rectángulo verde animado para indicar el progreso

Hay más información en los siguientes encabezados.

Uso de barras de progreso

Puede crear una barra de progreso mediante la función CreateWindowEx , especificando la clase de ventana PROGRESS_CLASS . Esta clase de ventana se registra cuando se carga el archivo DLL de controles comunes. Para obtener más información, vea Acerca de los controles comunes.

El control también está disponible en el Cuadro de herramientas de Microsoft Visual Studio, donde se denomina Control de progreso.

Rango y posición actual

El intervalo de una barra de progreso representa toda la duración 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.

Si no establece los valores de intervalo, el sistema establece el valor mínimo en 0 y el valor máximo en 100. Puede ajustar el intervalo a enteros convenientes mediante el PBM_SETRANGE mensaje.

Una barra de progreso proporciona varios mensajes que puede usar para establecer la posición actual. El PBM_SETPOS mensaje establece la posición en un valor determinado. El mensaje PBM_DELTAPOS avanza la posición agregando un valor especificado a la posición actual.

El mensaje PBM_SETSTEP permite especificar un incremento de paso para una barra de progreso. Posteriormente, siempre que envíe el mensaje PBM_STEPIT a la barra de progreso, la posición actual avanza por el incremento especificado. De forma predeterminada, el incremento de paso se establece en 10.

Procesamiento de mensajes de barra de progreso predeterminado

En esta sección se describen los mensajes que controla el procedimiento de ventana para la clase PROGRESS_CLASS .

Message Procesamiento realizado
WM_CREATE Asigna e inicializa una estructura inicial.
WM_DESTROY Libera todos los recursos asociados a la barra de progreso.
WM_ERASEBKGND Dibuja el fondo y los bordes de la barra de progreso.
WM_GETFONT Devuelve el identificador a la fuente actual. La barra de progreso no dibuja texto actualmente, por lo que el envío de este mensaje no tiene ningún efecto en el control.
WM_PAINT Dibuja la barra de progreso. Si el parámetro wParam no es NULL, el control asume que el valor es un HDC y pinta mediante ese contexto de dispositivo.
WM_SETFONT Guarda el identificador en la nueva fuente y devuelve el identificador a la fuente anterior. La barra de progreso no dibuja texto actualmente, por lo que el envío de este mensaje no tiene ningún efecto en el control.

 

Estilo de marquesina

Al crear el control de barra de progreso con el estilo PBS_MARQUEE , puede animarlo de forma que muestre la actividad, pero no indique qué proporción de la tarea está completa. La parte resaltada de la barra de progreso se mueve repetidamente a lo largo de la longitud de la barra. Puedes iniciar y detener la animación y controlar su velocidad enviando el mensaje PBM_SETMARQUEE . Las barras de progreso de la marquesina no tienen un rango ni una posición.

En la ilustración siguiente se muestra una barra de progreso en modo de marquesina. La parte resaltada se mueve por la barra.

captura de pantalla de una barra de progreso que mueve un resaltado verde a través de un rectángulo gris para indicar el progreso