IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Modifier la couleur de la barre de titre d'un formulaire


Sujet :

C#

  1. #1
    Job
    Job est déconnecté
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Par défaut Modifier la couleur de la barre de titre d'un formulaire
    Bonjour,

    Comme indiqué dans le titre, je cherche à modifier la couleur de la barre de titre de mon formulaire.

    Quelqu'un sait il comment faire ?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 33
    Par défaut
    voir ce code peut être il peut vous aidez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
        Public Const COLOR_ACTIVECAPTION = 2
        ' Puis mettez ce code dans un Bouton_Click par exemple :
        bar& = SetSysColors(1, COLOR_ACTIVECAPTION, RGB(255,0,0))
        ' N.B : ceci mettra la couleur Rouge dans la barre, pour le Bleu, utilisez : RGB(0,0,255) et pour le Vert : RGB(0,255,0)

  3. #3
    Job
    Job est déconnecté
    Membre confirmé
    Inscrit en
    Juillet 2004
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 55
    Par défaut
    Merci pour ce code mais il n'est pas en c#, je ne sais pas si il est adaptable.

    Je regarde.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Par défaut
    Salut Job,

    Pour modifier le design d'un composant Windows existant, tu dois le réécrire toi-même.

    Ou alors, utilise un toolkit existant, mais là aussi tu n'auras pas exactement ce que tu désires (ou alors, coup de chance!).

    Sinon, passe à WPF

  5. #5
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour Job...
    Et Dieu pour eprouver le prophete Job..........

    Voici un exemple tout fait tiree de la SDK MSDN...................qui je l'espere fare le bonheur de Job.......il modifie le backcolor et meme le text caption du WinForm......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
     
    namespace WindowsFormsApplication1
    {
     
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
     
        // override the WndProc method and trap the WM_NCPAINT message to draw 
        //the caption text with the color you need. For example:
     
            protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
     
                if (m.Msg == WinAPI.WM_NCPAINT)
                {
                    int x = WinAPI.GetSystemMetrics(WinAPI.SM_CXSIZE);
     
                    int y = WinAPI.GetSystemMetrics(WinAPI.SM_CYFRAME) +
                        WinAPI.GetSystemMetrics(WinAPI.SM_CYBORDER);
     
                    IntPtr hdc = WinAPI.GetWindowDC(m.HWnd);
                    Graphics g = Graphics.FromHdc(hdc);
     
                    Rectangle clientRecToScreen = new Rectangle(
                        this.PointToScreen(new Point(this.ClientRectangle.X,
                        this.ClientRectangle.Y)), new System.Drawing.Size(
                        this.ClientRectangle.Width, this.ClientRectangle.Height));
                    Rectangle clientRectangle = new Rectangle(clientRecToScreen.X -
                           this.Location.X, clientRecToScreen.Y - this.Location.Y,
                           clientRecToScreen.Width, clientRecToScreen.Height);
     
                    g.ExcludeClip(clientRectangle); //Remove client area
     
                    Size size = TextRenderer.MeasureText(this.Text,
                   SystemFonts.CaptionFont);
                    Rectangle rect = new Rectangle(x, y, size.Width,
                    size.Height);
     
                    g.FillRectangle(Brushes.Aquamarine, rect);
     
                    Color CaptionForeColor = Color.Red;
     
                    using (SolidBrush br = new SolidBrush(CaptionForeColor))
                    {
                        g.DrawString(this.Text, SystemFonts.CaptionFont, br,
                                        rect);
                    }
                    this.Refresh();
                }
            }
     
     
        }
     
        class WinAPI
        {
            public const int SM_CXSIZE = 30;
            public const int SM_CYSIZE = 31;
            public const int SM_CXBORDER = 5;
            public const int SM_CYBORDER = 5;
            public const int SM_CXFRAME = 32;
            public const int SM_CYFRAME = 33;
            public const int WM_NCPAINT = 0x85;
     
            [DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
            public static extern int GetSystemMetrics(int abc);
     
            [DllImport("User32.dll")]
            public static extern IntPtr GetWindowDC(IntPtr hwnd);
        }
     
     
    }
    Bon code...............

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/02/2008, 15h52
  2. Réponses: 4
    Dernier message: 03/06/2007, 07h18
  3. Modifier la couleur de la barre de menu
    Par Wriggles dans le forum Delphi
    Réponses: 3
    Dernier message: 14/03/2007, 15h22
  4. Modifier l'aspect de la barre de titre
    Par joneil dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 12/12/2006, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo