Partilhar via


Contextos comuns de dispositivos de exibição

Um de contexto de dispositivo comum é usado para desenhar na área do cliente da janela. O sistema fornece um contexto de dispositivo comum por padrão para qualquer janela cuja classe de janela não especifique explicitamente um estilo de contexto de dispositivo de exibição. Contextos de dispositivo comuns são normalmente usados com janelas que podem ser desenhadas sem alterações extensas nos atributos de contexto do dispositivo. Contextos de dispositivo comuns são convenientes porque não exigem memória adicional ou recursos do sistema, mas podem ser inconvenientes se o aplicativo deve configurar muitos atributos antes de usá-los.

O sistema recupera todos os contextos comuns do dispositivo a partir do cache de contexto do dispositivo de exibição. Um aplicativo pode recuperar um contexto de dispositivo comum imediatamente após a janela ser criada. Como o contexto comum do dispositivo é do cache, o aplicativo sempre deve liberar o contexto do dispositivo o mais rápido possível após o desenho. Depois que o contexto comum do dispositivo é liberado, ele não é mais válido e o aplicativo não deve tentar desenhar com ele. Para desenhar novamente, o aplicativo deve recuperar um novo contexto de dispositivo comum e continuar a recuperar e liberar um contexto de dispositivo comum cada vez que desenha na janela. Se o aplicativo recuperar o identificador de contexto do dispositivo usando a funçãoGetDC do, ele deverá usar a funçãoReleaseDC dopara liberar o identificador. Da mesma forma, para cada função BeginPaint, o aplicativo deve usar uma funçãoEndPaintcorrespondente.

Quando o aplicativo recupera o contexto do dispositivo, o sistema ajusta a origem para que ela se alinhe com o canto superior esquerdo da área do cliente. Ele também define a região de recorte para que a saída para o contexto do dispositivo seja cortada para a área do cliente. Qualquer saída que de outra forma apareceria fora da área do cliente é cortada. Se o aplicativo recuperar o contexto comum do dispositivo usando BeginPaint, o sistema também incluirá a região de atualização na região de recorte para restringir ainda mais a saída.

Quando um aplicativo libera um contexto de dispositivo comum, o sistema restaura os valores padrão para os atributos do contexto do dispositivo. Um aplicativo que modifica valores de atributo deve fazê-lo sempre que recuperar um contexto de dispositivo comum. Liberar o contexto do dispositivo libera quaisquer objetos de desenho que o aplicativo possa ter selecionado nele, portanto, o aplicativo não precisa liberar esses objetos antes de liberar o contexto do dispositivo. Em todos os casos, um aplicativo nunca deve assumir que o contexto comum do dispositivo mantém seleções não padrão após ser lançado.