次の方法で共有


MessageWindow クラス

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

Windows ベースのメッセージを送受信できるようにします。

名前空間:  Microsoft.WindowsCE.Forms
アセンブリ:  Microsoft.WindowsCE.Forms (Microsoft.WindowsCE.Forms.dll 内)

構文

'宣言
Public Class MessageWindow _
    Implements IDisposable
'使用
Dim instance As MessageWindow
public class MessageWindow : IDisposable
public ref class MessageWindow : IDisposable
type MessageWindow =  
    class
        interface IDisposable
    end

解説

MessageWindow クラスによって、Windows ベースのメッセージを送受信できるようにします。ネイティブ コードでウィンドウ ハンドルを作成し、必要なネイティブ Windows 関数のプラットフォーム呼び出しを実行します。

プログラムで MessageWindow を使用するには、MessageWindow から派生するクラスを作成し、既定の WndProc をオーバーライドして、特定のウィンドウ メッセージをウォッチします。Message クラスを使用して、メッセージを生成できます。MessageWindow を使用して生成するか、またはネイティブ コントロールを使用する Windows ベースのメッセージだけを受信できます。

このクラスを使用するには、Visual Studio 2005 プロジェクトに Microsoft.WindowsCE.Forms 名前空間への参照を追加する必要があります。

Topic Location
方法 : MessageWindow クラスを使用する .NET Compact Framework
方法 : MessageWindow クラスを使用する .NET Compact Framework
方法 : MessageWindow クラスを使用する .NET Compact Framework
方法 : MessageWindow クラスを使用します。 dv_fxnetcf

フォームから現在のマウスの x 座標と y 座標の Windows ベースのメッセージをメッセージ ウィンドウに送信させ、コールバック メソッドを呼び出し、タイトル バーに座標を表示する MessageWindow のコード例を次に示します。

フォームには、MessageWindow から派生したカスタム クラス MsgWindow が格納されています。MsgWindow クラスは、WM_CUSTOMMSG 識別子を含むメッセージを検索して、オーバーライドされた WndProc メソッドのメッセージを検査します。これらのメッセージを見つけると、フォームで定義された RespondToMessage コールバック メソッドを呼び出します。

フォームは、MsgWindow の新しいインスタンスを作成します。MsgWindow コンストラクターはフォームを受け取ります。この例では、格納しているフォームです。フォームは、OnMouseMove メソッドのオーバーライドで Windows ベースのメッセージを生成します。

フォームの実行時にマウスを移動すると、メッセージ ウィンドウにメッセージが生成されます。メッセージ ウィンドウの WndProc メソッドがフォームのコールバック メソッドを呼び出し、コールバック メソッドがメッセージに応答します。

Microsoft.WindowsCE.Forms への参照をプロジェクトに追加する必要があることに注意してください。

Imports System
Imports System.Windows.Forms
Imports Microsoft.WindowsCE.Forms

PublicClass MessageWindowForm
 Inherits System.Windows.Forms.Form
 Private mainMenu1 As System.Windows.Forms.MainMenu

 ' Create an instance of MsgWindow, a derived MessageWindow class.Private MsgWin As MsgWindow

 PublicSubNew()

  InitializeComponent()

  ' Create the message window using this form for its constructor.Me.MsgWin = New MsgWindow(Me)
 EndSubProtectedOverloadsOverridesSub Dispose(ByVal disposing AsBoolean)
  MyBase.Dispose(disposing)
 EndSub
#Region "Windows Form Designer generated code"PrivateSub InitializeComponent()
  Me.mainMenu1 = New System.Windows.Forms.MainMenu
  '  ' MessageWindowForm  'Me.Menu = Me.mainMenu1
  Me.Text = "Message Window Test"EndSub
#End Region


 SharedSub Main()
   Application.Run(New MessageWindowForm)
 EndSub

 ' Process taps to generate messages ' with the WParam and LParam parameters ' using the X and Y mouse coordinates.ProtectedOverridesSub OnMouseMove(ByVal e As MouseEventArgs)
 Dim msg As Microsoft.WindowsCE.Forms.Message = _
  Microsoft.WindowsCE.Forms.Message.Create(MsgWin.Hwnd, _
    MsgWindow.WM_CUSTOMMSG, New IntPtr(e.X), New IntPtr(e.Y))
    MessageWindow.SendMessage(msg)
  MyBase.OnMouseMove(e)
 EndSub
 ' This callback method responds to the Windows-based message.PublicSub RespondToMessage(ByVal x AsInteger, ByVal y AsInteger)
  Me.Text = "X = " + x.ToString() + ", Y= " + y.ToString()
 EndSubEndClass
' Derive MessageWindow to respond to' Windows messages and to notify the' form when they are received.PublicClass MsgWindow
 Inherits MessageWindow
 ' Assign integers to messages. ' Note that custom Window messages start at WM_USER = 0x400.PublicConst WM_CUSTOMMSG AsInteger = &H400

 ' Create an instance of the form.Private msgform As MessageWindowForm

 ' Save a reference to the form so it can ' be notified when messages are received.PublicSubNew(ByVal msgform As MessageWindowForm)
  Me.msgform = msgform
 EndSub
' Override the default WndProc behavior to examine messages.ProtectedOverridesSub WndProc(ByRef msg As Microsoft.WindowsCE.Forms.Message)
  SelectCase msg.Msg
  ' If message is of interest, invoke the method on the form that  ' functions as a callback to perform actions in response to the message.Case WM_CUSTOMMSG
   Me.msgform.RespondToMessage(Fix(msg.WParam.ToInt32), Fix(msg.LParam.ToInt32))
  EndSelect
 ' Call the base class WndProc method ' to process any messages not handled.MyBase.WndProc(msg)
 EndSubEndClass
using System;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;

namespace MsgWindow
{
publicclass MessageWindowForm : System.Windows.Forms.Form
{
 private System.Windows.Forms.MainMenu mainMenu1;

 // Create an instance of MsgWindow, a derived MessageWindow class.
 MsgWindow MsgWin;

 public MessageWindowForm()
 {

  InitializeComponent();

  // Create the message window using this form for its constructor.this.MsgWin = new MsgWindow(this);

  }
  protectedoverridevoid Dispose( bool disposing )
  {
   base.Dispose( disposing );
  }
  #region Windows Form Designer generated code
  privatevoid InitializeComponent()
  {
   this.mainMenu1 = new System.Windows.Forms.MainMenu();
   this.Menu = this.mainMenu1;
   this.Text = "Message Window Test";

  }
  #endregion

  staticvoid Main()
  {
   Application.Run(new MessageWindowForm());
  }

  // Process taps to generate messages// with the WParam and LParam parameters// using the X and Y mouse coordinates.protectedoverridevoid OnMouseMove(MouseEventArgs e)
  {
   Message msg = Message.Create(MsgWin.Hwnd,
    MsgWindow.WM_CUSTOMMSG,
    (IntPtr)e.X,
    (IntPtr)e.Y);
   MessageWindow.SendMessage(ref msg);
   base.OnMouseMove(e);
  }

  // This callback method responds to the Windows-based message.publicvoid RespondToMessage(int x, int y)
  {
   this.Text = "X = " + x.ToString() + ", Y= " + y.ToString();
  }
 }

 // Derive MessageWindow to respond to// Windows messages and to notify the// form when they are received.publicclass MsgWindow : MessageWindow
 {
  // Assign integers to messages.// Note that custom Window messages start at WM_USER = 0x400.publicconstint WM_CUSTOMMSG = 0x0400;


  // Create an instance of the form.private MessageWindowForm msgform;

  // Save a reference to the form so it can// be notified when messages are received.public MsgWindow(MessageWindowForm msgform)
  {
   this.msgform = msgform;
  }

  // Override the default WndProc behavior to examine messages.protectedoverridevoid WndProc(ref Message msg)
  {
   switch(msg.Msg)
   {
    // If message is of interest, invoke the method on the form that// functions as a callback to perform actions in response to the message.case WM_CUSTOMMSG:
     this.msgform.RespondToMessage((int)msg.WParam, (int)msg.LParam);
     break;
   }
   // Call the base WndProc method// to process any messages not handled.base.WndProc(ref msg);
  }
 }
}

継承階層

System.Object
  Microsoft.WindowsCE.Forms.MessageWindow

スレッド セーフ

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

プラットフォーム

Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET フレームワークのシステム要件」を参照してください。

バージョン情報

.NET Compact Framework

サポート対象 : 3.5、2.0、1.0

参照

参照

MessageWindow メンバー

Microsoft.WindowsCE.Forms 名前空間