ToolStrip.WndProc(Message) Yöntem

Tanım

Windows iletilerini işler.

C#
protected override void WndProc(ref System.Windows.Forms.Message m);

Parametreler

m
Message

İşlenmek üzere Windows Message .

Örnekler

Aşağıdaki kod örneği, yapısında WndProc tanımlanan işletim sistemi iletilerini işlemek için yöntemini geçersiz kılmayı Message gösterir. WM_ACTIVATEAPP işletim sistemi iletisi, başka bir uygulamanın ne zaman etkin hale geldiğini öğrenmek için bu örnekte işlenir. Kullanılabilir Message.Msg, Message.LParamve Message.WParam değerleri hakkında bilgi için adresinde bulunan Platform SDK'sı belge başvurusuna https://learn.microsoft.combakın. Gerçek sabit değerler, Docs'ta da bulunan Platform SDK 'sı (Çekirdek SDK bölümü) indirmesinde bulunan windows.h üst bilgi dosyasında bulunabilir.

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

Açıklamalar

Tüm iletiler yöntemi aracılığıyla filtrelendikten sonra yöntemine PreProcessMessage gönderilirWndProc.

WndProc yöntemi tam olarak Windows WindowProc işlevine karşılık gelir. Windows iletilerini işleme hakkında daha fazla bilgi için bkz . WindowProc işlevi.

Devralanlara Notlar

Devralan denetimler, işlemedikleri iletileri işlemek için temel sınıfın WndProc(Message) yöntemini çağırmalıdır.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 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