War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Message-Struktur

Implementiert eine Windows-Meldung.

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

[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public struct Message

Der Message-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche EigenschaftHWndRuft das Fensterhandle der Meldung ab oder legt dieses fest.
Öffentliche EigenschaftLParamGibt das LParam-Feld der Meldung an.
Öffentliche EigenschaftMsgRuft die ID-Nummer der Meldung ab oder legt diese fest.
Öffentliche EigenschaftResultGibt den Wert an, der als Reaktion auf die Behandlung der Meldung an Windows zurückgegeben wird.
Öffentliche EigenschaftWParamRuft das WParam-Feld der Meldung ab oder legt dieses fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeStatischer MemberCreateErstellt einen neuen Message.
Öffentliche MethodeEqualsBestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Überschreibt ValueType.Equals(Object).)
Öffentliche MethodeGetHashCodeGibt den Hashcode für diese Instanz zurück. (Überschreibt ValueType.GetHashCode().)
Öffentliche MethodeGetLParamRuft den LParam-Wert ab und konvertiert ihn in ein Objekt.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeToStringInfrastruktur. Gibt einen String zurück, der den aktuellen Message darstellt. (Überschreibt ValueType.ToString().)
Zum Seitenanfang

  NameBeschreibung
Öffentlicher OperatorStatischer MemberEqualityStellt fest, ob zwei Instanzen von Message gleich sind.
Öffentlicher OperatorStatischer MemberInequalityStellt fest, ob zwei Instanzen von Message ungleich sind.
Zum Seitenanfang

Die Message-Struktur umschließt von Windows gesendete Meldungen. Mit dieser Struktur können Sie eine Meldung umschließen und der Fensterprozedur zum Verteilen zuweisen. Sie können mit dieser Struktur auch Informationen über eine vom System an die Anwendung oder an Steuerelemente gesendete Meldung abrufen. Weitere Informationen zu Windows-Meldungen finden Sie in Meldungen und Meldungswarteschlagen.

Die Message kann nicht direkt erstellt werden. Verwenden Sie stattdessen die Create-Methode. Aus Effizienzgründen verwendet die Message den Pool vorhandener Message, anstatt, sofern möglich, eine neue zu instanziieren. Wenn im Pool jedoch keine Message verfügbar ist, wird eine neue instanziiert.

Im folgenden Codebeispiel wird das Überschreiben der WndProc-Methode zum Behandeln von in der Message angegebenen Betriebssystemmeldungen veranschaulicht. In diesem Beispiel wird die Betriebssystemmeldung WM_ACTIVATEAPP behandelt, um zu ermitteln, wann eine andere Anwendung aktiviert wird. Informationen zu den verfügbaren Werten Message.Msg, Message.LParam und Message.WParam finden Sie in der Dokumentation zur MSG-Struktur. Informationen zu den tatsächlichen Konstantenwerten finden Sie unter Meldungskonstanten.


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


.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft