ウィンドウメッセージを処理する方法
C#でもウィンドウメッセージを直接処理できます。
もうC++を使わなくてもいいですね。
プログラム
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace NativeWindow { public partial class Form1: Form { const int WM_MOVE = 3; private WinHook hook; public Form1() { InitializeComponent(); } private void Form1_Shown(object sender, EventArgs e) { hook = new WinHook(); hook.AssignHandle(this.Handle); } private class WinHook: System.Windows.Forms.NativeWindow { protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_MOVE: Console.WriteLine("ウィンドウが動いた"); break; } base.WndProc(ref m); } } } }