Comment puis-je dessiner une barre d'outils dans la barre de titre d'une fenêtre C winforms dans Windows Vista? J'ai une fenêtre où cela fonctionne, sauf quand la fenêtre est non minimisée/non maximisée, sa taille augmente d'environ 16x32px. Si possible, veuillez fournir des exemples de code.Dessin d'une barre d'outils dans la barre de titre d'une fenêtre
Répondre
La seule façon de le faire efficacement consiste à gérer le message WM_NCPAINT lorsque vous remplacez la méthode WndProc pour le formulaire. Si vous passez à l'implémentation de base de WndProc, le cadre des fenêtres sera peint, mais à ce stade, vous serez responsable de peindre les éléments de votre barre d'outils dans la barre de titre.
Vous devrez également gérer tous les autres messages WM_NC *, ce qui vous permettra de traiter les clics de bouton et autres (dont vous aurez besoin pour gérer les événements de vos contrôles peints).
J'ai regardé autour pour le même problème, parce que je voulais coder une barre de ruban avec ce grand bouton dans le coin en haut à gauche ... La seule bonne source que j'ai trouvé
à
CodeProject
sur this blog et this one et another one.
Je les avais regardés, et j'utilise celui de http://www.codeproject.com/KB/dialog/AeroNonClientAreaButtons.aspx, mais j'ai des problèmes avec la taille de la fenêtre qui augmente à chaque fois qu'elle est non minimisée/non maximisée. – duckblaster
Vous devrez peut-être manuellement réinitialiser la taille du formulaire pour surmonter cela. –
Pouvez-vous fournir un exemple de code étant donné que je suis nouveau sur C#. – duckblaster