Ler em inglês

Compartilhar via


Message Estrutura

Definição

Implementa uma mensagem do Windows.

C#
public struct Message
C#
public struct Message : IEquatable<System.Windows.Forms.Message>
Herança
Message
Implementações

Exemplos

O exemplo de código a seguir demonstra a substituição do WndProc método para lidar com mensagens do Messagesistema operacional identificadas no . A mensagem do sistema operacional WM_ACTIVATEAPP é tratada neste exemplo para saber quando outro aplicativo está se tornando ativo. Para obter informações sobre os valores e Message.WParam os valores disponíveisMessage.MsgMessage.LParam, consulte a documentação da Estrutura MSG. Para obter informações sobre os valores constantes reais, consulte Constantes de Mensagem.

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

Comentários

A Message estrutura encapsula as mensagens que o Windows envia. Você pode usar essa estrutura para encapsular uma mensagem e atribuí-la ao procedimento de janela a ser expedido. Você também pode usar essa estrutura para obter informações sobre uma mensagem que o sistema envia para seu aplicativo ou controles. Para obter mais informações sobre mensagens do Windows, consulte Mensagens e Filas de Mensagens.

Você não pode criar o Message diretamente. Em vez disso, use o Create método. Para fins de eficiência, ele usa seu Message pool de s existentes Messageem vez de instanciar um novo, se possível. No entanto, se um Message não estiver disponível no pool, um novo será instanciado.

Propriedades

HWnd

Obtém ou define o identificador de janela da mensagem.

LParam

Especifica o campo LParam da mensagem.

Msg

Obtém ou define o número da ID da mensagem.

Result

Especifica o valor retornado para o Windows em resposta para lidar com a mensagem.

WParam

Obtém ou define o campo WParam da mensagem.

Métodos

Create(IntPtr, Int32, IntPtr, IntPtr)

Cria um novo Message.

Equals(Message)

Indica se o objeto atual é igual a outro objeto do mesmo tipo.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

GetHashCode()

Retorna o código hash para a instância.

GetLParam(Type)

Obtém o valor LParam e converte-o em um objeto.

ToString()

Retorna um valor String que representa o Message atual.

Operadores

Equality(Message, Message)

Determina se duas instâncias do Message são iguais.

Inequality(Message, Message)

Determina se duas instâncias do Message são diferentes.

Aplica-se a

Produto Versões
.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

Confira também