Quando desenhar em uma janela
Um aplicativo desenha em uma janela em uma variedade de vezes: ao criar uma janela pela primeira vez, ao alterar o tamanho da janela, ao mover a janela de trás de outra janela, ao minimizar ou maximizar a janela, ao exibir dados de um arquivo aberto e ao rolar, alterar ou selecionar uma parte dos dados exibidos.
O sistema gerencia ações como mover e dimensionar uma janela. Se uma ação afetar o conteúdo da janela, o sistema marcará a parte afetada da janela como pronta para atualização e, na próxima oportunidade, enviará uma mensagem WM_PAINT para o procedimento de janela da janela. A mensagem é um sinal para o aplicativo para determinar o que deve ser atualizado e realizar o desenho necessário.
Algumas ações são gerenciadas pelo aplicativo, como exibir arquivos abertos e selecionar dados exibidos. Para essas ações, um aplicativo pode marcar para atualizar a parte da janela afetada pela ação, fazendo com que uma mensagem WM_PAINT seja enviada na próxima oportunidade. Se uma ação exigir comentários imediatos, o aplicativo poderá desenhar enquanto a ação ocorre, sem esperar WM_PAINT. Por exemplo, um aplicativo típico realça a área selecionada pelo usuário em vez de aguardar a próxima mensagem WM_PAINT para atualizar a área.
Em todos os casos, um aplicativo pode desenhar em uma janela assim que for criado. Para desenhar na janela, o aplicativo deve primeiro recuperar um identificador para um contexto de dispositivo de exibição para a janela. O ideal é que um aplicativo execute a maioria de suas operações de desenho durante o processamento de mensagens WM_PAINT . Nesse caso, o aplicativo recupera um contexto de dispositivo de exibição chamando a função BeginPaint . Se um aplicativo desenhar em qualquer outro momento, como no WinMain ou durante o processamento de mensagens de teclado ou mouse, ele chamará a função GetDC ou GetDCEx para recuperar o DC de exibição.