Message Estrutura
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Implementa uma mensagem no Windows.
public value class Message
public struct Message
type Message = struct
Public Structure Message
- Herança
Exemplos
O exemplo de código seguinte demonstra a sobreposição do WndProc método para lidar com mensagens do sistema operativo identificadas no Messagearquivo . A WM_ACTIVATEAPP mensagem do sistema operativo é tratada neste exemplo para saber quando outra aplicação está a tornar-se ativa. Para informações sobre os valores Message.Msgdisponíveis, Message.LParam, e Message.WParam disponíveis, consulte a documentação da Estrutura MSG . Para informações sobre os valores reais das constantes, veja Constantes da Mensagem.
using namespace System;
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::Security::Permissions;
namespace csTempWindowsApplication1
{
public ref class Form1: public System::Windows::Forms::Form
{
private:
// Constant value was found in the "windows.h" header file.
static const Int32 WM_ACTIVATEAPP = 0x001C;
Boolean appActive;
public:
Form1()
{
appActive = true;
this->Size = System::Drawing::Size( 300, 300 );
this->Text = "Form1";
this->Font = gcnew System::Drawing::Font( "Microsoft Sans Serif",18.0F,System::Drawing::FontStyle::Bold,System::Drawing::GraphicsUnit::Point,((System::Byte)(0)) );
}
protected:
virtual void OnPaint( PaintEventArgs^ e ) override
{
// 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 );
}
}
[SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)]
virtual void WndProc( Message% m ) override
{
// Listen for operating system messages.
switch ( m.Msg )
{
case WM_ACTIVATEAPP:
// The WParam value identifies what is occurring.
appActive = (int)m.WParam != 0;
// Invalidate to get new text painted.
this->Invalidate();
break;
}
Form::WndProc( m );
}
};
}
[STAThread]
int main()
{
Application::Run( gcnew csTempWindowsApplication1::Form1 );
}
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);
}
}
}
Imports System.Drawing
Imports System.Windows.Forms
Namespace csTempWindowsApplication1
Public Class Form1
Inherits System.Windows.Forms.Form
' Constant value was found in the "windows.h" header file.
Private Const WM_ACTIVATEAPP As Integer = &H1C
Private appActive As Boolean = True
<STAThread()> _
Shared Sub Main()
Application.Run(New Form1())
End Sub
Public Sub New()
MyBase.New()
Me.Size = New System.Drawing.Size(300, 300)
Me.Text = "Form1"
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
' Paint a string in different styles depending on whether the
' application is active.
If (appActive) Then
e.Graphics.FillRectangle(SystemBrushes.ActiveCaption, 20, 20, 260, 50)
e.Graphics.DrawString("Application is active", Me.Font, SystemBrushes.ActiveCaptionText, 20, 20)
Else
e.Graphics.FillRectangle(SystemBrushes.InactiveCaption, 20, 20, 260, 50)
e.Graphics.DrawString("Application is Inactive", Me.Font, SystemBrushes.ActiveCaptionText, 20, 20)
End If
End Sub
<System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Protected Overrides Sub WndProc(ByRef m As Message)
' Listen for operating system messages
Select Case (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 = (m.WParam.ToInt32() <> 0)
' Invalidate to get new text painted.
Me.Invalidate()
End Select
MyBase.WndProc(m)
End Sub
End Class
End Namespace
Observações
A estrutura Message envolve as mensagens que Windows envia. Pode usar esta estrutura para encapsular uma mensagem e atribuí-la ao procedimento janela a ser despachado. Também pode usar esta estrutura para obter informações sobre uma mensagem que o sistema envia para a sua aplicação ou controlos. Para mais informações sobre Windows mensagens, consulte Mensagens e Filas de Mensagens.
Não podes criar o Message direto. Em vez disso, use o Create método. Por razões de eficiência, utiliza Message o seu conjunto de s existentes Messageem vez de instanciar um novo, se possível. No entanto, se um Message a não estiver disponível no pool, um novo é instanciado.
Propriedades
| Name | Description |
|---|---|
| HWnd |
Obtém ou define o handle da janela da mensagem. |
| LParam |
Especifica o LParam campo da mensagem. |
| Msg |
Obtém ou define o número de identificação da mensagem. |
| Result |
Especifica o valor que é devolvido ao Windows em resposta ao tratamento da mensagem. |
| WParam |
Obtém ou define o WParam campo da mensagem. |
Métodos
| Name | Description |
|---|---|
| Create(IntPtr, Int32, IntPtr, IntPtr) |
Cria um novo Message. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. |
| GetHashCode() |
Devolve o código de hash para esta instância. |
| GetLParam(Type) |
Obtém o LParam valor e convertem-no num objeto. |
| ToString() |
Operadores
| Name | Description |
|---|---|
| Equality(Message, Message) |
Determina se duas instâncias de Message são iguais. |
| Inequality(Message, Message) |
Determina se duas instâncias de Message não são iguais. |