Compartilhar via


Área nãocliente

O sistema envia uma mensagem WM_NCPAINT para a janela sempre que uma parte da área nãocliente da janela, como a barra de título, a barra de menus ou o quadro da janela, precisar 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ãocliente 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ãoclientes 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ãocliente. 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ãocliente. Quando um aplicativo recebe uma mensagem de 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 de 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 redesenhará o rótulo do ícone.