내보내기(0) 인쇄
모두 확장

MessageWindow 클래스

Windows 기반 메시지를 보내고 받는 기능을 제공합니다.

네임스페이스: Microsoft.WindowsCE.Forms
어셈블리: Microsoft.WindowsCE.Forms(microsoft.windowsce.forms.dll)

public class MessageWindow : IDisposable
public class MessageWindow implements IDisposable
public class MessageWindow implements IDisposable
적용할 수 없음.

MessageWindow 클래스는 Windows 기반 메시지를 보내고 받는 기능을 제공합니다. 이 클래스는 네이티브 코드에서 창 핸들을 만들고 필요한 플랫폼 호출을 수행하여 네이티브 Windows 함수를 호출합니다.

플랫폼에서 MessageWindow를 사용하려면 MessageWindow에서 파생된 클래스를 만들고 특정 창 메시지를 조사하도록 기본 WndProc 동작을 재정의해야 합니다. Message 클래스를 사용하여 메시지를 생성할 수 있습니다. MessageWindow를 사용하여 생성하는 Windows 기반 메시지나 네이티브 컨트롤이 있는 메시지만 받을 수 있습니다.

이 클래스를 사용하려면 Visual Studio 2005 프로젝트에서 Microsoft.WindowsCE.Forms 네임스페이스에 대한 참조를 추가해야 합니다.

항목위치
방법: MessageWindow 클래스 사용.NET Compact Framework
방법: MessageWindow 클래스 사용.NET Compact Framework
방법: MessageWindow 클래스 사용.NET Compact Framework

다음 코드 예제에서는 MessageWindow를 보여 줍니다. 여기에서는 폼에서 현재 마우스 x-y 좌표의 Windows 기반 메시지를 메시지 창에 보내도록 함으로써 폼에 대한 콜백 메서드를 호출하여 제목 표시줄에서 좌표를 표시합니다.

폼에는 MessageWindow에서 파생된 사용자 지정 클래스 MsgWindow가 포함되어 있습니다. MsgWindow 클래스는 재정의된 WndProc 메서드에서 메시지를 검사하여 WM_CUSTOMMSG 식별자가 있는 메시지를 찾습니다. 이러한 메시지를 찾으면 이 클래스는 폼에 정의된 RespondToMessage 콜백 메서드를 호출합니다.

폼은 MsgWindow의 새 인스턴스를 만듭니다. MsgWindow 생성자는 폼을 사용합니다. 이 예제에서 폼은 포함하는 폼입니다. 폼은 OnMouseMove 메서드의 재정의에서 Windows 기반 메시지를 생성합니다.

폼이 실행되는 경우 마우스를 이동하면 메시지 창에 메시지가 생성됩니다. 메시지 창 WndProc 메서드는 메시지에 응답하는 폼에 대한 콜백 메서드를 호출합니다.

프로젝트에 Microsoft.WindowsCE.Forms에 대한 참조를 추가해야 합니다.

using System;
using System.Windows.Forms;
using Microsoft.WindowsCE.Forms;

namespace MsgWindow
{
public class 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);

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

  }
  #endregion

  static void Main()
  {
   Application.Run(new MessageWindowForm());
  }

  // Process taps to generate messages
  // with the WParam and LParam parameters
  // using the X and Y mouse coordinates.
  protected override void 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.
  public void 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.
 public class MsgWindow : MessageWindow
 {
  // Assign integers to messages.
  // Note that custom Window messages start at WM_USER = 0x400.
  public const int 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.
  protected override void 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

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0은 Windows Vista, Microsoft Windows XP SP2 및 Windows Server 2003 SP1에서 지원됩니다.

.NET Compact Framework

2.0, 1.0에서 지원

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft