48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AIProofread
|
|
{
|
|
/// <summary>
|
|
/// 处理窗体基本事件
|
|
/// </summary>
|
|
[ClassInterface(ClassInterfaceType.AutoDual)]
|
|
[ComVisible(true)]
|
|
public class EventForwarder
|
|
{
|
|
public const int WM_NCLBUTTONDOWN = 0xA1;
|
|
public const int HT_CAPTION = 0x2;
|
|
|
|
[DllImport("user32.dll")]
|
|
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
|
|
[DllImport("user32.dll")]
|
|
public static extern bool ReleaseCapture();
|
|
|
|
readonly IntPtr target;
|
|
readonly Form formHandle;
|
|
|
|
|
|
public EventForwarder(Form who)
|
|
{
|
|
this.target = who.Handle;
|
|
this.formHandle = who;
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
formHandle.Close();
|
|
}
|
|
|
|
public void MouseDownDrag()
|
|
{
|
|
ReleaseCapture();
|
|
SendMessage(target, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
|
|
}
|
|
}
|
|
}
|