Partilhar via


Sobre os controles da barra de progresso

Uma barra de progresso é uma janela que um aplicativo pode usar para indicar o progresso de uma operação longa.

Consiste num retângulo que é animado à medida que uma operação progride.

A ilustração a seguir mostra uma barra de progresso que não usa estilos visuais.

captura de tela de uma barra de progresso que adiciona retângulos em uma linha para indicar o progresso

A ilustração a seguir mostra uma barra de progresso usando estilos visuais. A aparência do controle irá variar dependendo do sistema operacional e do tema selecionado. Para obter mais informações, consulte Visual Styles.

captura de tela de uma barra de progresso que alonga um retângulo verde animado para indicar o progresso

Mais informações estão contidas nas seguintes rubricas.

Usando barras de progresso

Você pode criar uma barra de progresso usando a funçãoCreateWindowEx, especificando a classe PROGRESS_CLASS window. Essa classe de janela é registrada quando a DLL de controles comuns é carregada. Para obter mais informações, consulte Sobre controles comuns.

O controle também está disponível na caixa de ferramentas do Microsoft Visual Studio, onde é chamado de controle de progresso.

Alcance e posição atual

O intervalo de uma barra de progresso representa toda a duração da operação, e a posição atual representa o progresso que o aplicativo fez para concluir a operação. O procedimento da janela usa o intervalo e a posição atual para determinar a porcentagem da barra de progresso a ser preenchida com a cor de realce.

Se você não definir os valores do intervalo, o sistema definirá o valor mínimo como 0 e o valor máximo como 100. Você pode ajustar o intervalo para números inteiros convenientes usando a mensagem PBM_SETRANGE.

Uma barra de progresso fornece várias mensagens que você pode usar para definir a posição atual. A mensagem PBM_SETPOS define a posição como um determinado valor. A mensagem PBM_DELTAPOS avança a posição adicionando um valor especificado à posição atual.

A mensagem PBM_SETSTEP permite especificar um incremento de etapa para uma barra de progresso. Posteriormente, sempre que você enviar a mensagem de PBM_STEPIT para a barra de progresso, a posição atual avança pelo incremento especificado. Por padrão, o incremento de etapa é definido como 10.

Processamento de mensagens da barra de progresso padrão

Esta secção descreve as mensagens manipuladas pelo processo de janela para a classe PROGRESS_CLASS.

Mensagem Processamento realizado
WM_CREATE Aloca e inicializa uma estrutura inicial.
WM_DESTROY Libera todos os recursos associados à barra de progresso.
WM_ERASEBKGND Desenha o plano de fundo e as bordas da barra de progresso.
WM_GETFONT Retorna o identificador para a fonte atual. A barra de progresso atualmente não desenha texto, portanto, enviar essa mensagem não tem efeito sobre o controle.
WM_PAINT Desenha a barra de progresso. Se o parâmetro wParam for diferente deNULL, o controlo assume que o valor é um HDC e pinta usando esse contexto do dispositivo.
WM_SETFONT Salva o identificador na nova fonte e retorna o identificador para a fonte anterior. A barra de progresso atualmente não desenha texto, portanto, enviar essa mensagem não tem efeito sobre o controle.

 

Estilo Marquise

Ao criar o controle da barra de progresso com o estilo PBS_MARQUEE, você pode animá-lo de uma forma que mostre a atividade, mas não indique qual proporção da tarefa foi concluída. A parte realçada da barra de progresso move-se repetidamente ao longo do comprimento da barra. Você pode iniciar e parar a animação, e controlar sua velocidade, enviando a mensagem PBM_SETMARQUEE. As barras de progresso do letreiro não têm um intervalo ou posição.

A ilustração a seguir mostra uma barra de progresso no modo letreiro. A parte destacada move-se através da barra.

captura de tela de uma barra de progresso que move um realce verde em um retângulo cinza para indicar o progresso