Sobre controles de barra de progresso
Uma barra de progresso é uma janela que um aplicativo pode usar para indicar o progresso de uma operação longa.
Ele consiste em um 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.
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 Estilos visuais.
Mais informações estão contidas nos seguintes títulos.
Usando barras de progresso
Você pode criar uma barra de progresso usando a função CreateWindowEx, especificando a classe de janela PROGRESS_CLASS. 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.
Faixa 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 de 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 de intervalo, o sistema definirá o valor mínimo como 0 e o valor máximo como 100. Você pode ajustar o intervalo para 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 para 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 PBM_STEPIT para a barra de progresso, a posição atual avançará pelo incremento especificado. Por padrão, o incremento da etapa é definido como 10.
Processamento de mensagens da barra de progresso padrão
Esta seção descreve as mensagens manipuladas pelo procedimento 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, o envio dessa mensagem não tem efeito sobre o controle. |
WM_PAINT | Desenha a barra de progresso. Se o parâmetro wParam for não-NULL, o controle assume que o valor é um HDC e pinta usando esse contexto de dispositivo. |
WM_SETFONT | Salva o identificador para a nova fonte e retorna o identificador para a fonte anterior. A barra de progresso atualmente não desenha texto, portanto, o envio dessa mensagem não tem efeito sobre o controle. |
Estilo Letreiro
Ao criar o controle da barra de progresso com o estilo PBS_MARQUEE , você pode animá-lo de uma maneira que mostre a atividade, mas não indique qual proporção da tarefa está concluída. A parte realçada da barra de progresso se move 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 de letreiro. A parte destacada se move pela barra.