2009-08-13 7 views

Répondre

3

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.

+0

Je dois changer le style de la fenêtre existante. – Moon

+0

Réponse mise à jour pour couvrir ce cas. –

Questions connexes