Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ToolStrip.WndProc (Message)

 

Data di pubblicazione: ottobre 2016

Elabora i messaggi di Windows.

Spazio dei nomi:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

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

Parametri

m
Type: System.Windows.Forms.Message

Oggetto Message di Windows da elaborare.

Tutti i messaggi vengono inviati per il WndProc metodo dopo essere stati filtrati tramite il PreProcessMessage metodo.

Il metodo WndProc corrisponde esattamente alla funzione WindowProc di Windows. Per ulteriori informazioni sull'elaborazione dei messaggi di Windows, vedere il WindowProc funzione nella documentazione di Windows Platform SDK disponibile in MSDN library http://msdn.microsoft.com/library.

Note per gli eredi:

I controlli che ereditano devono chiamare la classe di base WndProc metodo per elaborare eventuali messaggi non gestiti.

Esempio di codice seguente viene illustrato l'override di WndProc metodo per gestire i messaggi di sistema operativo identificati nella Message struttura. Il sistema operativo WM_ACTIVATEAPP viene gestito in questo esempio per sapere se un'altra applicazione diventa attiva. Per informazioni sul Message.Msg, Message.LParam, e Message.WParam valori, vedere la documentazione di riferimento di Platform SDK all'interno di MSDN library all'indirizzo http://msdn.microsoft.com/library. Valori costanti effettivi sono reperibili nel file di intestazione h incluso nel download di Platform SDK (sezione Core SDK), è anche disponibile in MSDN.

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
Disponibile da 2.0
Torna all'inizio
Mostra: