Como: Exibir o progresso do trabalho de impressão

Este tópico descreve como exibir o progresso do trabalho de impressão para o usuário e dar-lhe a opção de cancelar um trabalho de impressão que está atualmente em andamento.

Visão geral

Um procedimento de diálogo de progresso de impressão normalmente executa as seguintes funções.

  • Exiba o progresso do trabalho de impressão para o usuário.
  • Inicie o thread de processamento de impressão.
  • Exiba um botão Cancelar para que o utilizador possa interromper um trabalho de impressão antes que este seja concluído.

Estritamente falando, a única coisa que o procedimento da caixa de diálogo de progresso de impressão deve fazer é exibir o progresso do trabalho de impressão para o usuário. No entanto, como as outras duas funções na lista anterior estão intimamente relacionadas, elas também foram incluídas neste módulo.

Exibindo o progresso do trabalho de impressão

Um procedimento da caixa de diálogo de progresso de impressão processa as seguintes mensagens da janela.

  • WM_INITDIALOG

    Inicializa os controles que a caixa de diálogo usa.

  • WM_SETCURSOR

    Define o cursor como um ponteiro quando o usuário pode cancelar um trabalho de impressão e para o cursor de espera quando o trabalho de impressão está em um ponto em que não pode ser cancelado.

  • INÍCIO_DE_IMPRESSÃO_DO_UTILIZADOR

    Define os parâmetros da barra de progresso para o trabalho de impressão e cria o fluxo de impressão para iniciar o processamento do trabalho de impressão.

    Esta é uma mensagem de janela específica do aplicativo.

  • WM_COMMAND - IDCANCEL

    Define o evento de cancelamento para indicar à thread de processamento de impressão que cancele o trabalho de impressão.

  • USER_PRINT_STATUS_UPDATE

    Atualiza a barra de progresso e o texto de status para mostrar o estado atual do trabalho de impressão.

    Esta é uma mensagem de janela específica do aplicativo.

  • USER_PRINT_CLOSING

    Defina o texto do estado de encerramento na caixa de diálogo de progresso para indicar que o trabalho de impressão está a fechar.

    Esta é uma mensagem de janela específica do aplicativo.

  • USER_PRINT_COMPLETE

    Exibe a mensagem "Trabalho de impressão concluído" para o usuário e libera identificadores e eventos que foram usados neste trabalho de impressão.

    Esta é uma mensagem de janela específica do aplicativo.