WM_NCCALCSIZE mensagem
Enviado quando o tamanho e a posição da área de cliente de uma janela devem ser calculados. Ao processar essa mensagem, um aplicativo pode controlar o conteúdo da área do cliente da janela quando o tamanho ou a posição da janela é alterado.
Uma janela recebe essa mensagem por meio da função WindowProc.
#define WM_NCCALCSIZE 0x0083
Parâmetros
-
wParam
-
Se wParam for TRUE, ele especificará que o aplicativo deve indicar qual parte da área do cliente contém informações válidas. O sistema copia as informações válidas para a área especificada dentro da nova área de cliente.
Se wParam for FALSE, o aplicativo não precisará indicar a parte válida da área do cliente.
-
lParam
-
Se wParam for TRUE, lParam apontará para uma estrutura NCCALCSIZE_PARAMS que contém informações que um aplicativo pode usar para calcular o novo tamanho e a posição do retângulo do cliente.
Se wParam for FALSE, lParam apontará para uma estrutura RECT . Na entrada, a estrutura contém o retângulo de janela proposto para a janela. Na saída, a estrutura deve conter as coordenadas de tela da área de cliente da janela correspondente.
Retornar valor
Tipo: LRESULT
Se o parâmetro wParam for FALSE, o aplicativo deverá retornar zero.
Se wParam for TRUE, o aplicativo deverá retornar zero ou uma combinação dos valores a seguir.
Se wParam for TRUE e um aplicativo retornar zero, a área de cliente antiga será preservada e será alinhada com o canto superior esquerdo da nova área de cliente.
Código/valor de retorno | Descrição |
---|---|
|
Especifica que a área do cliente da janela deve ser preservada e alinhada com a parte superior da nova posição da janela. Por exemplo, para alinhar a área do cliente ao canto superior esquerdo, retorne os valores WVR_ALIGNTOP e WVR_ALIGNLEFT . |
|
Especifica que a área do cliente da janela deve ser preservada e alinhada com o lado direito da nova posição da janela. Por exemplo, para alinhar a área do cliente ao canto inferior direito, retorne os valores WVR_ALIGNRIGHT e WVR_ALIGNBOTTOM. |
|
Especifica que a área do cliente da janela deve ser preservada e alinhada com o lado esquerdo da nova posição da janela. Por exemplo, para alinhar a área do cliente ao canto inferior esquerdo, retorne os valores WVR_ALIGNLEFT e WVR_ALIGNBOTTOM . |
|
Especifica que a área do cliente da janela deve ser preservada e alinhada com a parte inferior da nova posição da janela. Por exemplo, para alinhar a área do cliente ao canto superior esquerdo, retorne os valores WVR_ALIGNTOP e WVR_ALIGNLEFT . |
|
Usado em combinação com qualquer outro valor, exceto WVR_VALIDRECTS, fará com que a janela seja completamente redesenhada se o retângulo do cliente mudar de tamanho horizontalmente. Esse valor é semelhante a CS_HREDRAW estilo de classe |
|
Usado em combinação com qualquer outro valor, exceto WVR_VALIDRECTS, fará com que a janela seja completamente redesenhada se o retângulo do cliente mudar de tamanho verticalmente. Esse valor é semelhante a CS_VREDRAW estilo de classe |
|
Esse valor faz com que toda a janela seja redesenhada. É uma combinação de valores WVR_HREDRAW e WVR_VREDRAW . |
|
Esse valor indica que, após o retorno de WM_NCCALCSIZE, os retângulos especificados pelos membros rgrc[1] e rgrc[2] da estrutura NCCALCSIZE_PARAMS contêm retângulos de área de origem e de destino válidos, respectivamente. O sistema combina esses retângulos para calcular a área da janela a ser preservada. O sistema copia qualquer parte da imagem da janela que esteja dentro do retângulo de origem e corta a imagem para o retângulo de destino. Ambos os retângulos estão em coordenadas relativas ao pai ou relativas à tela. Esse sinalizador não pode ser combinado com nenhum outro sinalizador. Esse valor retornado permite que um aplicativo implemente estratégias mais elaboradas de preservação da área do cliente, como centralizar ou preservar um subconjunto da área do cliente. |
Comentários
A janela pode ser redesenhada, dependendo se o estilo de classe CS_HREDRAW ou CS_VREDRAW é especificado. Esse é o processamento padrão compatível com versões anteriores dessa mensagem pela função DefWindowProc (além do cálculo de retângulo do cliente usual descrito na tabela anterior).
Quando wParam for TRUE, simplesmente retornar 0 sem processar os retângulos NCCALCSIZE_PARAMS fará com que a área do cliente seja redimensionada para o tamanho da janela, incluindo o quadro de janela. Isso removerá o quadro da janela e legenda itens da janela, deixando apenas a área do cliente exibida.
A partir do Windows Vista, remover o quadro padrão simplesmente retornando 0 quando o wParam é TRUE não afeta quadros estendidos para a área do cliente usando a função DwmExtendFrameIntoClientArea . Somente o quadro padrão será removido.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|
Confira também
-
Referência
-
Conceitual
-
Outros recursos