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.
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.
Mais informações estão contidas nas seguintes rubricas.
-
Usando barras de progresso
- Intervalo e Posição Atual
- de processamento de mensagens da barra de progresso padrão
- Estilo Marquise
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.