_Message WM NCCALCSIZE

Envoyé lorsque la taille et la position de la zone cliente d’une fenêtre doivent être calculées. En traitant ce message, une application peut contrôler le contenu de la zone cliente de la fenêtre lorsque la taille ou la position de la fenêtre change.

Une fenêtre reçoit ce message par le biais de sa fonction WindowProc .

#define WM_NCCALCSIZE                   0x0083

Paramètres

wParam

Si wParam a la valeur true, il spécifie que l’application doit indiquer la partie de la zone cliente qui contient des informations valides. Le système copie les informations valides dans la zone spécifiée au sein de la nouvelle zone cliente.

Si wParam a la valeur false, l’application n’a pas besoin d’indiquer la partie valide de la zone cliente.

lParam

Si wParam a la valeur true, lParam pointe vers une structure NCCALCSIZE _ params qui contient des informations qu’une application peut utiliser pour calculer la nouvelle taille et la position du rectangle client.

Si wParam a la valeur false, lParam pointe vers une structure Rect . À l’entrée, la structure contient le rectangle de fenêtre proposé pour la fenêtre. À la sortie, la structure doit contenir les coordonnées d’écran de la zone cliente de fenêtre correspondante.

Valeur de retour

Type : LRESULT

Si le paramètre wParam a la valeur false, l’application doit retourner la valeur zéro.

Si wParam a la valeur true, l’application doit retourner zéro ou une combinaison des valeurs suivantes.

Si wParam a la valeur true et qu’une application retourne zéro, l’ancienne zone client est conservée et est alignée avec l’angle supérieur gauche de la nouvelle zone cliente.

Code/valeur de retour Description
WVR _ ALIGNTOP
0x0010
Spécifie que la zone cliente de la fenêtre doit être conservée et alignée avec le haut de la nouvelle position de la fenêtre. Par exemple, pour aligner la zone client dans le coin supérieur gauche, renvoyez les _ valeurs WVR ALIGNTOP et WVR _ ALIGNLEFT .
WVR _ ALIGNRIGHT
0x0080
Spécifie que la zone cliente de la fenêtre doit être conservée et alignée sur le côté droit de la nouvelle position de la fenêtre. Par exemple, pour aligner la zone client dans le coin inférieur droit, retournez les valeurs de WVR _ ALIGNRIGHT et WVR _ ALIGNBOTTOM.
WVR _
0x0020
ALIGNLEFT
Spécifie que la zone cliente de la fenêtre doit être conservée et alignée sur le côté gauche de la nouvelle position de la fenêtre. Par exemple, pour aligner la zone client dans le coin inférieur gauche, retournez les valeurs de WVR _ ALIGNLEFT et WVR _ ALIGNBOTTOM .
WVR _
0x0040
ALIGNBOTTOM
Spécifie que la zone cliente de la fenêtre doit être conservée et alignée en bas de la nouvelle position de la fenêtre. Par exemple, pour aligner la zone client sur l’angle supérieur gauche, renvoyez les _ valeurs WVR ALIGNTOP et WVR _ ALIGNLEFT .
WVR _ HREDRAW
0x0100
Utilisé en combinaison avec d’autres valeurs, à l’exception de WVR _ VALIDRECTS, provoque le redessin complet de la fenêtre si le rectangle client change de taille horizontalement. Cette valeur est similaire au style de classe cs _ HREDRAW
WVR _ VREDRAW
0x0200
Utilisé en combinaison avec d’autres valeurs, à l’exception de WVR _ VALIDRECTS, provoque le redessin complet de la fenêtre si le rectangle client change de taille verticalement. Cette valeur est similaire au style de classe cs _ VREDRAW
WVR _ Redessiner
0x0300
Cette valeur entraîne le redessin de la fenêtre entière. Il s’agit d’une combinaison de valeurs WVR _ HREDRAW et WVR _ VREDRAW .
WVR _ VALIDRECTS
0x0400
Cette valeur indique que, lors du retour de WM _ NCCALCSIZE, les rectangles spécifiés par les membres rgrc [ 1 ] et rgrc [ 2 ] de la structure NCCALCSIZE _ params contiennent respectivement des rectangles de destination et de zone source valides. Le système combine ces rectangles pour calculer la zone de la fenêtre à conserver. Le système copie toute partie de l’image de fenêtre qui se trouve dans le rectangle source et découpe l’image vers le rectangle de destination. Les deux rectangles sont en coordonnées relatives au parent ou à l’écran. Cet indicateur ne peut pas être combiné avec d’autres indicateurs.
Cette valeur de retour permet à une application d’implémenter des stratégies de conservation de la zone client plus élaborées, telles que le centrage ou la conservation d’un sous-ensemble de la zone cliente.

Notes

La fenêtre peut être redessinée, selon que le style de classe cs _ HREDRAW ou cs _ VREDRAW est spécifié. Il s’agit du traitement par défaut à compatibilité descendante de ce message par la fonction DefWindowProc (en plus du calcul de rectangle client habituel décrit dans le tableau précédent).

Lorsque wParam a la valeur true, le retour de 0 sans traitement des rectangles des _ paramètres NCCALCSIZE entraîne le redimensionnement de la zone cliente jusqu’à la taille de la fenêtre, y compris le cadre de la fenêtre. Cela supprime les éléments de la fenêtre et du frame de fenêtre de votre fenêtre, ce qui laisse uniquement la zone cliente affichée.

à compter de Windows Vista, la suppression du frame standard en retournant simplement 0 lorsque wParam a la valeur TRUE n’affecte pas les frames qui sont étendus dans la zone cliente à l’aide de la fonction DwmExtendFrameIntoClientArea . Seul le frame standard sera supprimé.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel - [Applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server - [Applications de bureau uniquement]
En-tête
Winuser. h (inclure Windows. h)

Voir aussi

Référence

DefWindowProc

MoveWindow

SetWindowPos

_paramètres NCCALCSIZE

Conceptuel

Windows

Autres ressources

RECTANGULAIRE