Message Struktúra
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Implementál egy Windows üzenetet.
public value class Message
public value class Message : IEquatable<System::Windows::Forms::Message>
public struct Message
public struct Message : IEquatable<System.Windows.Forms.Message>
type Message = struct
Public Structure Message
Public Structure Message
Implements IEquatable(Of Message)
- Öröklődés
- Megvalósítás
Példák
Az alábbi példakód azt mutatja be, hogy felül kell bírálni a metódust a WndProc rendszerben azonosított Messageoperációsrendszer-üzenetek kezelésére. Ebben a példában a WM_ACTIVATEAPP operációsrendszer-üzenetet kezeljük, hogy megtudjuk, mikor válik aktívvá egy másik alkalmazás. Az elérhető Message.Msgés Message.LParamMessage.WParam az értékekkel kapcsolatos információkért tekintse meg az MSG-struktúra dokumentációját. A tényleges állandó értékekkel kapcsolatos információkért lásd: Üzenetállandók.
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
Megjegyzések
A Message struktúra körbefuttatja az Windows küldött üzeneteket. Ezzel a struktúrával körbefuttathat egy üzenetet, és hozzárendelheti a küldendő ablakművelethez. Ez a struktúra arra is használható, hogy információt kapjon a rendszer által az alkalmazásnak vagy vezérlőknek küldött üzenetről. Az Windows üzenetekkel kapcsolatos további információkért lásd: A üzenetsorok és üzenetsorok.
Közvetlenül nem hozható létre Message . Ehelyett használja a metódust Create . A hatékonyság érdekében a Message meglévő Messages készletét használja ahelyett, hogy újat hoz létre, ha lehetséges. Ha azonban egy Message nem érhető el a készletben, a rendszer egy új példányt hoz létre.
Tulajdonságok
| Name | Description |
|---|---|
| HWnd |
Lekéri vagy beállítja az üzenet ablakfogópontját. |
| LParam |
LParam Az üzenet mezőjét adja meg. |
| Msg |
Lekéri vagy beállítja az üzenet azonosítószámát. |
| Result |
Megadja az üzenetet kezelő Windows visszaadott értéket. |
| WParam |
Lekéri vagy beállítja az WParam üzenet mezőjét. |
Metódusok
| Name | Description |
|---|---|
| Create(IntPtr, Int32, IntPtr, IntPtr) |
Létrehoz egy újat Message. |
| Equals(Message) |
Azt jelzi, hogy az aktuális objektum egyenlő-e egy másik, azonos típusú objektummal. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. |
| GetHashCode() |
A példány kivonatkódját adja vissza. |
| GetLParam(Type) |
Lekéri az LParam értéket, és objektummá alakítja az értéket. |
| ToString() |
Az aktuális Stringértéket képviselő értéket Message ad vissza. |
Operátorok
| Name | Description |
|---|---|
| Equality(Message, Message) |
Meghatározza, hogy két példány Message egyenlő-e. |
| Inequality(Message, Message) |
Meghatározza, hogy két példány Message nem egyenlő-e. |