Lire en anglais

Partager via


Control.WndProc(Message) Méthode

Définition

Traite les messages Windows.

protected virtual void WndProc(ref System.Windows.Forms.Message m);

Paramètres

m
Message

Message Windows à traiter.

Exemples

L’exemple de code suivant illustre la substitution de la WndProc méthode pour gérer les messages du système d’exploitation identifiés dans la Message structure. Le message WM_ACTIVATEAPP système d’exploitation est géré dans cet exemple pour savoir quand une autre application devient active. Consultez les rubriques suivantes pour comprendre les valeurs , et Message.WParam disponiblesMessage.MsgMessage.LParam. Les valeurs constantes réelles se trouvent dans le fichier d’en-tête Windows.h.

using System;
using System.Drawing;
using System.Windows.Forms;

namespace csTempWindowsApplication1
{
    public class Form1 : System.Windows.Forms.Form
    {
        // Constant value was found in the "windows.h" header file.
        private const int WM_ACTIVATEAPP = 0x001C;
        private bool appActive = true;

        [STAThread]
        static void Main() 
        {
            Application.Run(new Form1());
        }
        
        public Form1()
        {
            this.Size = new System.Drawing.Size(300,300);
            this.Text = "Form1";
            this.Font = new System.Drawing.Font("Microsoft Sans Serif", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
        }

        protected override void OnPaint(PaintEventArgs e) 
        {
            // Paint a string in different styles depending on whether the
            // application is active.
            if (appActive) 
            {
                e.Graphics.FillRectangle(SystemBrushes.ActiveCaption,20,20,260,50);
                e.Graphics.DrawString("Application is active", this.Font, SystemBrushes.ActiveCaptionText, 20,20);
            }
            else 
            {
                e.Graphics.FillRectangle(SystemBrushes.InactiveCaption,20,20,260,50);
                e.Graphics.DrawString("Application is Inactive", this.Font, SystemBrushes.ActiveCaptionText, 20,20);
            }
        }

        protected override void WndProc(ref Message m) 
        {
            // Listen for operating system messages.
            switch (m.Msg)
            {
                // The WM_ACTIVATEAPP message occurs when the application
                // becomes the active application or becomes inactive.
                case WM_ACTIVATEAPP:

                    // The WParam value identifies what is occurring.
                    appActive = (((int)m.WParam != 0));

                    // Invalidate to get new text painted.
                    this.Invalidate();

                    break;                
            }
            base.WndProc(ref m);
        }
    }
}

Remarques

Tous les messages sont envoyés à la WndProc méthode après avoir été filtrés via la PreProcessMessage méthode .

La méthode WndProc correspond exactement à la fonction WindowProc de Windows. Pour plus d’informations sur le traitement des messages Windows, consultez la fonction WindowProc.

Notes pour les héritiers

L’héritage de contrôles doit appeler la méthode de la classe de WndProc(Message) base pour traiter les messages qu’ils ne gèrent pas.

S’applique à

Produit Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Voir aussi