Contextos do dispositivo de exibição de janela
Um contexto de dispositivo de janela permite que um aplicativo desenhe em qualquer lugar de uma janela, incluindo a área não cliente. Os contextos de dispositivo de janela normalmente são usados por aplicativos que processam o WM_NCPAINT e WM_NCACTIVATE mensagens para janelas com áreas não cliente personalizadas. O uso de um contexto de dispositivo de janela não é recomendado para nenhuma outra finalidade.
Um aplicativo pode recuperar um contexto de dispositivo de janela usando a função GetWindowDC ou GetDCEx com a opção DCX_WINDOW especificada. A função recupera um contexto de dispositivo de janela do cache de contexto do dispositivo de exibição. Uma janela que usa um contexto de dispositivo de janela deve liberá-lo após o desenho usando a função ReleaseDC assim que possível. Os contextos do dispositivo de janela são sempre do cache; os estilos de classe CS_OWNDC e CS_CLASSDC não afetam o contexto do dispositivo.
Quando um aplicativo recupera um contexto de dispositivo de janela, o sistema define a origem do dispositivo como o canto superior esquerdo da janela em vez do canto superior esquerdo da área do cliente. Ele também define a região de recorte para incluir a janela inteira, não apenas a área do cliente. O sistema define os valores de atributo atuais de um contexto de dispositivo de janela com os mesmos valores padrão que um contexto de dispositivo comum. Um aplicativo pode alterar os valores de atributo, mas o sistema não preserva nenhuma alteração quando o contexto do dispositivo é liberado.