Partilhar via


Á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 o quadro 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, pois 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 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 a função GetWindowDC ou GetDCEx e, ao concluir o desenho, deve liberar o contexto do dispositivo de janela usando a função ReleaseDC .

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 recortadas. 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 , depois de processá-la deverá retornar TRUE para direcionar o sistema para concluir a alteração da janela ativa. Se a janela for minimizada quando o aplicativo receber a mensagem WM_NCACTIVATE , ela deverá passar a mensagem para DefWindowProc. Nesses casos, a função padrão redesenha o rótulo do ícone.