Avez-vous vraiment besoin de changement le style de la fenêtre existante, ou avez besoin de vous créer avec un style donné dès le départ? Si c'est l'ancien (sonne comme elle, par le reste de votre question), alors que vous venez de passer outre CreateParams
propriété sur votre Form
(ou quoi que ce soit) et changer la valeur de ClassStyle
, Style
et ExStyle
propriétés sur la valeur de retour:
protected override CreateParams CreateParams
{
get
{
CreateParams createParams = base.CreateParams;
createParams.Style |= WS_...;
return createParams;
}
}
pour changer le style d'une fenêtre existante, vous devrez utiliser P/Invoke pour appeler GetWindowLong
pour récupérer la valeur actuelle de GWL_STYLE
(ou GWL_EXSTYLE
, selon ce que vous avez besoin) pour la fenêtre, retournez les bits selon les besoins, et appelez SetWindowLong
pour le rétablir. Vous pouvez trouver des signatures P/Invoke pour les deux fonctions, ainsi qu'un exemple qui les utilise avec GWL_EXSTYLE
, here.
Je dois changer le style de la fenêtre existante. – Moon
Réponse mise à jour pour couvrir ce cas. –