İngilizce dilinde oku

Aracılığıyla paylaş


Message Yapı

Tanım

Bir Windows iletisi uygular.

C#
public struct Message
C#
public struct Message : IEquatable<System.Windows.Forms.Message>
Devralma
Message
Uygulamalar

Örnekler

Aşağıdaki kod örneği, içinde tanımlanan işletim sistemi iletilerini işlemek için yöntemini geçersiz kılmayı WndProc Messagegö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 MSG Yapısı belgelerine bakın. Gerçek sabit değerler hakkında bilgi için bkz. İleti Sabitleri.

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

Yapı, Windows'un Message gönderdiği iletileri sarmalar. Bir iletiyi sarmalayıp dağıtılacak pencere yordamına atamak için bu yapıyı kullanabilirsiniz. Sistemin uygulamanıza veya denetimlerinize gönderdiği bir ileti hakkında bilgi almak için de bu yapıyı kullanabilirsiniz. Windows iletileri hakkında daha fazla bilgi için bkz. İletiler ve İleti Kuyrukları.

öğesini doğrudan oluşturamazsınız Message . Bunun yerine yöntemini kullanın Create . Verimlilik açısından, Message mümkünse yeni bir örnek oluşturmak yerine mevcut Messages havuzunu kullanır. Ancak havuzda Message yoksa yeni bir örnek oluşturulur.

Özellikler

HWnd

İletinin pencere tutamacını alır veya ayarlar.

LParam

İletinin LParam alanını belirtir.

Msg

İletinin kimlik numarasını alır veya ayarlar.

Result

İletiyi işlemeye yanıt olarak Windows'a döndürülen değeri belirtir.

WParam

İletinin WParam alanını alır veya ayarlar.

Yöntemler

Create(IntPtr, Int32, IntPtr, IntPtr)

Yeni bir Message oluşturur.

Equals(Message)

Geçerli nesnenin aynı türdeki başka bir nesneye eşit olup olmadığını gösterir.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

GetHashCode()

Bu örneğe ilişkin karma kodu döndürür.

GetLParam(Type)

LParam Değerini alır ve değeri bir nesneye dönüştürür.

ToString()

Geçerli Messageöğesini temsil eden bir String döndürür.

İşleçler

Equality(Message, Message)

İki örneğinin Message eşit olup olmadığını belirler.

Inequality(Message, Message)

İki örneğinin Message eşit olup olmadığını belirler.

Şunlara uygulanır

Ürün Sürümler
.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
Windows Desktop 3.0, 3.1, 5, 6, 7

Ayrıca bkz.