Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Control.WndProc méthode (Message)

 

Date de publication : novembre 2016

Traite les messages Windows.

Espace de noms:   System.Windows.Forms
Assembly:  System.Windows.Forms (dans System.Windows.Forms.dll)

[SecurityPermissionAttribute(SecurityAction.InheritanceDemand, 
	Flags = SecurityPermissionFlag.UnmanagedCode)]
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
protected virtual void WndProc(
	ref Message m
)

Paramètres

m
Type: System.Windows.Forms.Message

Message Windows à traiter.

Tous les messages sont envoyés à la WndProc méthode après avoir été filtrés par le biais du 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 le WindowProc function.

Remarques à l’attention des héritiers :

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

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 le Message structure. LeWM_ACTIVATEAPPmessage de 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 Message.Msg, Message.LParam, et Message.WParam valeurs. Vous trouverez des valeurs de constante 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);
            }
        }

	[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
        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);
        }
    }
}

SecurityPermission

for inheriting classes to call unmanaged code. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode.

SecurityPermission

for the immediate caller to call unmanaged code. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode.

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: