Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Control.WndProc-Methode: (Message)

 

Veröffentlicht: Oktober 2016

Verarbeitet Windows-Meldungen.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

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

Parameter

m
Type: System.Windows.Forms.Message

Die zu verarbeitende Windows-Message.

Alle Nachrichten werden gesendet, um die WndProc -Methode nach dem Abrufen über gefiltert die PreProcessMessage Methode.

Die WndProc-Methode entspricht genau der WindowProc-Funktion von Windows. Weitere Informationen zu Windows-Nachrichten verarbeitet, finden Sie unter der WindowProc function.

Hinweise für Vererber:

Erbende Steuerelemente müssen der Basisklasse WndProc Methode, um Nachrichten zu verarbeiten, die sie nicht behandeln.

Das folgende Codebeispiel veranschaulicht das Überschreiben der WndProc Methode zur Behandlung von Betriebssystem-Nachrichten gemäß der Message Struktur. DieWM_ACTIVATEAPPBetriebssystem Nachricht erfolgt in diesem Beispiel wissen, wenn eine andere Anwendung active aufgefüllt wird. Finden Sie unter den folgenden Themen zu den verfügbaren Message.Msg, Message.LParam, und Message.WParam Werte. Die tatsächlichen Konstanten Werte finden Sie in der Headerdatei 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
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: