Leggere in inglese

Condividi tramite


Message Struct

Definizione

Implementa un messaggio di Windows.

C#
public struct Message
C#
public struct Message : IEquatable<System.Windows.Forms.Message>
Ereditarietà
Message
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato l'override del WndProc metodo per gestire i messaggi del sistema operativo identificati in Message. Il messaggio del sistema operativo WM_ACTIVATEAPP viene gestito in questo esempio per sapere quando un'altra applicazione sta diventando attiva. Per informazioni sui valori , Message.LParame Message.WParam disponibiliMessage.Msg, vedere la documentazione relativa alla struttura MSG. Per informazioni sui valori costanti effettivi, vedere Costanti messaggio.

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

Commenti

La struttura esegue il Message wrapping dei messaggi inviati da Windows. È possibile utilizzare questa struttura per eseguire il wrapping di un messaggio e assegnarlo alla routine della finestra da inviare. È anche possibile usare questa struttura per ottenere informazioni su un messaggio inviato dal sistema all'applicazione o ai controlli. Per altre informazioni sui messaggi di Windows, vedere Messaggi e code di messaggi.

Non è possibile creare direttamente .Message Usare invece il Create metodo . Per motivi di efficienza, usa il Message relativo pool di elementi esistenti Messageanziché crearne un'istanza nuova, se possibile. Tuttavia, se un Message oggetto non è disponibile nel pool, ne viene creata un'istanza nuova.

Proprietà

HWnd

Ottiene o imposta l'handle di finestra del messaggio.

LParam

Specifica il campo LParam del messaggio.

Msg

Ottiene o imposta il numero di ID del messaggio.

Result

Specifica il valore restituito a Windows in risposta alla gestione del messaggio.

WParam

Ottiene o imposta il campo WParam del messaggio.

Metodi

Create(IntPtr, Int32, IntPtr, IntPtr)

Crea un nuovo oggetto Message.

Equals(Message)

Indica se l'oggetto corrente è uguale a un altro oggetto dello stesso tipo.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

GetHashCode()

Restituisce il codice hash per l'istanza.

GetLParam(Type)

Ottiene il valore LParam e lo converte in un oggetto.

ToString()

Restituisce un oggetto String che rappresenta l'oggetto Message corrente.

Operatori

Equality(Message, Message)

Determina se due istanze dell'oggetto Message sono uguali.

Inequality(Message, Message)

Determina se due istanze di un oggetto Message non sono uguali.

Si applica a

Prodotto Versioni
.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

Vedi anche