Normalement, l'épaisseur d'une fenêtre est de 4 pixels, ce qui peut être récupéré par la méthode GetSystemMetrics. Puis-je changer sa valeur, par exemple 2 pixels?Puis-je modifier l'épaisseur de la bordure d'une fenêtre avec MFC?
Merci beaucoup!
Normalement, l'épaisseur d'une fenêtre est de 4 pixels, ce qui peut être récupéré par la méthode GetSystemMetrics. Puis-je changer sa valeur, par exemple 2 pixels?Puis-je modifier l'épaisseur de la bordure d'une fenêtre avec MFC?
Merci beaucoup!
Réponse simple: Non. Pas pour une fenêtre spécifique.
Réponse compliquée: La bordure est dessinée comme partie de la zone "non-client" de la fenêtre. Tout cela est géré (sous le capot) par le traitement par défaut (par exemple DefWindowProc), avec la légende, minimiser, agrandir les boutons, etc. Vous pouvez remplacer cela en manipulant le message WM_NCPAINT. Vous serez alors responsable de dessiner toute la zone non-client de votre fenêtre. Vous devez également gérer le message WM_NCCALCSIZE pour que Windows connaisse la quantité d'espace restant à donner à votre zone client.
Vous pouvez également définir le style de bordure de votre fenêtre sur Aucun. Cela permettra à Windows de dessiner la légende pour vous, même si elle sera probablement légèrement différente. Malheureusement, en faisant cela, vous perdez la fonctionnalité glisser-redimensionner. Pour cela, vous devrez gérer le message WM_NCHITTEST.