A mensagem WM_NCCALCSIZE é enviada quando o tamanho e posição da área cliente da janela devem ser calculados. Ao processamento esta mensagem, um aplicativo pode controlar o conteúdo da área cliente da janela quando altera o tamanho ou a posição da janela.
WM_NCCALCSIZE fCalcValidRects = (BOOL) wParam; / / área válida bandeira lpncsp = lParam (LPNCCALCSIZE_PARAMS); / / tamanho do cálculo dados ou lpncsp = lParam (LPRECT); / / nova janela coordenadas
Se wParam é FALSE, o aplicativo não precisa indicar a parte válida da área do cliente.
Se wParam é FALSE, lParam aponta para um RECT estrutura. Na entrada, a estrutura contém o Retangular de janela proposto para a janela. Na saída, a estrutura deve conter as coordenadas tela da área de cliente a janela correspondente.
Se o parâmetro fCalcValidRects for FALSE, o aplicativo deve retornar zero.
Se fCalcValidRects for TRUE, o aplicativo deve retornar zero ou uma combinação dos seguintes valores:
| Valor | Significado |
|---|---|
| WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT | |
| Estes valores, usados em combinação, especificam que a área cliente da janela deve ser preservada e adequadamente alinhados relativo para a nova posição da janela. Por exemplo, para alinhar a área do cliente para o canto inferior esquerdo, retornar os valores WVR_ALIGNLEFT e WVR_ALIGNBOTTOM. | |
| WVR_HREDRAW, WVR_VREDRAW | |
| Esses valores, usados em combinação com outros valores, fazer com que a janela a ser redesenhado completamente se as alterações de retângulo cliente tamanho horizontal ou verticalmente. Esses valores são semelhantes aos estilos de classe CS_HREDRAW e CS_VREDRAW. | |
| WVR_REDRAW | |
| Este valor faz com que toda a janela a ser redesenhado. É uma combinação de valores de WVR_HREDRAW e WVR_VREDRAW. | |
| WVR_VALIDRECTS | |
| Esse valor indica que, após retornar de WM_NCCALCSIZE, os retângulos especificados por rgrc [1] e rgrc [2] Membros da estrutura NCCALCSIZE_PARAMS contém destino válido e retângulos de área de origem, respectivamente. O sistema combina esses retângulos para calcular a área da janela para ser preservado. O sistema copia qualquer parte da imagem de janela que está dentro do retângulo de origem e recorta a imagem para o Retangular de destino. Ambos os retângulos estão em coordenadas pai-relativo ou relativo de tela. | |
| Esse valor de retorno permite que um aplicativo implementar mais elaboradas estratégias de preservação de área de cliente, tais como centralização ou preservar um subconjunto da área do cliente. | |
Se fCalcValidRects é TRUE e um aplicativo retorna zero, a área de cliente antigo é preservada e está alinhada com o canto superior esquerdo da área cliente novo.
A janela pode ser redesenhada, dependendo se o estilo de classe CS_HREDRAW ou CS_VREDRAW é especificado. Este é o padrão, compatível processamento desta mensagem pelo DefWindowProc função (além do cálculo de retângulo cliente habitual descrito na tabela anterior).
nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Sem suporte.
Cabeçalho:Declarado em WinUser. h.
Visão geral do Windows, mensagens de janela, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT