Auf Englisch lesen

Freigeben über


Control.WndProc(Message) Methode

Definition

Verarbeitet Windows-Meldungen.

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

Parameter

m
Message

Die zu verarbeitende Windows-Message.

Beispiele

Im folgenden Codebeispiel wird das Überschreiben der -Methode zum Verarbeiten von WndProc In der Message -Struktur identifizierten Betriebssystemmeldungen veranschaulicht. Die WM_ACTIVATEAPP Meldung des Betriebssystems wird in diesem Beispiel behandelt, um zu erfahren, wann eine andere Anwendung aktiv wird. Informationen zu den verfügbaren Message.MsgWerten, Message.LParam, und Message.WParam finden Sie in den folgenden Themen. Die tatsächlichen konstanten Werte finden Sie in der Windows.h-Headerdatei.

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);
        }
    }
}

Hinweise

Alle Nachrichten werden an die WndProc -Methode gesendet, nachdem sie durch die PreProcessMessage -Methode gefiltert wurden.

Die WndProc-Methode entspricht genau der WindowProc-Funktion von Windows. Weitere Informationen zur Verarbeitung von Windows-Nachrichten finden Sie in der WindowProc-Funktion.

Hinweise für Vererber

Vererbende Steuerelemente sollten die -Methode der Basisklasse WndProc(Message) aufrufen, um alle Nachrichten zu verarbeiten, die sie nicht verarbeiten.

Gilt für:

Produkt Versionen
.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

Weitere Informationen