Área Não Cliente
O sistema envia uma mensagem WM_NCPAINT para a janela sempre que uma parte da área não cliente da janela, como a barra de título, a barra de menus ou a moldura da janela, deve ser atualizada. O sistema também pode enviar outras mensagens para direcionar uma janela para atualizar uma parte de sua área de cliente; Por exemplo, quando uma janela fica ativa ou inativa, ela envia a mensagem WM_NCACTIVATE para atualizar sua barra de título. Em geral, o processamento dessas mensagens para janelas padrão não é recomendado, porque o aplicativo deve ser capaz de desenhar todas as partes necessárias da área não cliente para a janela. Por esse motivo, a maioria dos aplicativos passa essas mensagens para DefWindowProc para processamento padrão.
Um aplicativo que cria áreas não cliente personalizadas para suas janelas deve processar essas mensagens. Ao fazer isso, o aplicativo deve usar um contexto de dispositivo de janela para realizar o desenho na janela. O de contexto do dispositivo de janela permite que o aplicativo desenhe em todas as partes da janela, incluindo a área não cliente. Um aplicativo recupera um contexto de dispositivo de janela usando o GetWindowDC ou função de GetDCEx e, quando o desenho estiver concluído, deve liberar o contexto do dispositivo de janela usando a funçãoReleaseDC.
O sistema mantém uma região de atualização para a área não cliente. Quando um aplicativo recebe uma mensagem WM_NCPAINT, o parâmetro wParam contém um identificador para uma região que define as dimensões da região de atualização. O aplicativo pode usar o identificador para combinar a região de atualização com a região de recorte para o contexto do dispositivo de janela. O sistema não combina automaticamente a região de atualização ao recuperar o contexto do dispositivo de janela, a menos que o aplicativo use GetDCEx e especifique o identificador de região e o sinalizador DCX_INTERSECTRGN. Se o aplicativo não combinar a região de atualização, somente as operações de desenho que de outra forma se estenderiam para fora da janela serão cortadas. O aplicativo não é responsável por limpar a região de atualização, independentemente de usar a região.
Se um aplicativo processar a mensagem WM_NCACTIVATE, após o processamento, ele deve retornar TRUE para direcionar o sistema para concluir a mudança da janela ativa. Se a janela for minimizada quando o aplicativo receber a mensagem WM_NCACTIVATE, ele deve passar a mensagem para DefWindowProc. Nesses casos, a função padrão redesenha o rótulo do ícone.