📄 subclassbase.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace gowk.utility.skin
{
public class SubClassBase:NativeWindow
{
static int wmMouseEnterMessage=-1;
public SubClassBase(IntPtr hwnd)
{
Debug.Assert(hwnd!=IntPtr.Zero);
this.AssignHandle(hwnd);
}
public virtual new void AssignHandle(IntPtr hwnd)
{
base.AssignHandle(hwnd);
}
static int WM_MOUSEENTER
{
get
{
if (wmMouseEnterMessage == -1)
{
wmMouseEnterMessage = RegisterWindowMessage("WinFormsMouseEnter");
}
return wmMouseEnterMessage;
}
}
protected override void WndProc(ref Message m)
{
if(m.Msg==WM_MOUSEENTER)
{
this.WMMOUSEENTER(ref m);
return;
}
switch (m.Msg)
{
case SubClassBase.WM_DRAWITEM:
this.WMDRAWITEM(ref m);
break;
case SubClassBase.WM_MEASUREITEM:
this.WMMEASUREITEM(ref m);
break;
case SubClassBase.WM_LBUTTONDBLCLK:this.WMLBUTTONDBLCLK(ref m);
break;
case SubClassBase.WM_LBUTTONDOWN:this.WMLBUTTONDOWN(ref m);
break;
case SubClassBase.WM_LBUTTONUP:this.WMLBUTTONUP(ref m);
break;
case SubClassBase.WM_MBUTTONDBLCLK:this.WMMBUTTONDBLCLK(ref m);
break;
case SubClassBase.WM_MBUTTONDOWN:this.WMMBUTTONDOWN(ref m);
break;
case SubClassBase.WM_MBUTTONUP:this.WMMBUTTONUP(ref m);
break;
case SubClassBase.WM_MENUSELECT:this.WMMENUSELECT(ref m);
break;
case SubClassBase.WM_MOUSEACTIVATE:this.WMMOUSEACTIVATE(ref m);
break;
case SubClassBase.WM_MOUSEHOVER:this.WMMOUSEHOVER(ref m);
break;
case SubClassBase.WM_MOUSELEAVE:this.WMMOUSELEAVE(ref m);
break;
case SubClassBase.WM_MOUSEMOVE:this.WMMOUSEMOVE(ref m);
break;
case SubClassBase.WM_MOVE:this.WMMOVE(ref m);
break;
case SubClassBase.WM_MOVING:this.WMMOVING(ref m);
break;
case SubClassBase.WM_NCACTIVATE:this.WMNCACTIVATE(ref m);
break;
case SubClassBase.WM_NCMOUSELEAVE:this.WMNCMOUSELEAVE(ref m);
break;
case SubClassBase.WM_NCMOUSEHOVER:this.WMNCMOUSEHOVER(ref m);
break;
#region
/*case SubClassBase.WM_NCCALCSIZE:
break;
case SubClassBase.WM_NCCREATE:
break;
case SubClassBase.WM_NCDESTROY:
break;
case SubClassBase.WM_NCHITTEST:
break;*/
#endregion
case SubClassBase.WM_NCLBUTTONDBLCLK:
this.WMNCLBUTTONDBLCLK(ref m);
break;
case SubClassBase.WM_NCLBUTTONDOWN:
this.WMNCLBUTTONDOWN(ref m);
break;
case SubClassBase.WM_NCLBUTTONUP:
this.WMNCLBUTTONUP(ref m);
break;
case SubClassBase.WM_NCMBUTTONDBLCLK:
this.WMNCMBUTTONDBLCLK(ref m);
break;
case SubClassBase.WM_NCMBUTTONDOWN:
this.WMNCMBUTTONDOWN(ref m);
break;
case SubClassBase.WM_NCMBUTTONUP:
this.WMNCMBUTTONUP(ref m);
break;
case SubClassBase.WM_NCMOUSEMOVE:
this.WMNCMOUSEMOVE(ref m);
break;
case SubClassBase.WM_NCPAINT:
this.WMNCPAINT(ref m);
break;
case SubClassBase.WM_NCRBUTTONDBLCLK:
this.WMNCRBUTTONDBLCLK(ref m);
break;
case SubClassBase.WM_NCRBUTTONDOWN:
this.WMNCRBUTTONDOWN(ref m);
break;
case SubClassBase.WM_NCRBUTTONUP:
this.WMNCRBUTTONUP(ref m);
break;
/* case SubClassBase.WM_NOTIFY:
break;*/
case SubClassBase.WM_PAINT:
this.WMPAINT(ref m);
break;
/* case SubClassBase.WM_PAINTICON:
break;*/
case SubClassBase.WM_RBUTTONDBLCLK:
this.WMRBUTTONDBLCLK(ref m);
break;
case SubClassBase.WM_RBUTTONDOWN:
this.WMRBUTTONDOWN(ref m);
break;
case SubClassBase.WM_RBUTTONUP:
this.WMRBUTTONUP(ref m);
break;
/* case SubClassBase.WM_SIZE:
break;
case SubClassBase.WM_SIZING:
break;*/
case SubClassBase.WM_VSCROLL:
this.WMVSCROLL(ref m);
break;
case SubClassBase.WM_HSCROLL:
this.WMHSCROLL(ref m);
break;
case SubClassBase.WM_ERASEBKGND:
this.WMERASEBKGND(ref m);
break;
default:
base.DefWndProc(ref m);
break;
}
}
protected virtual void WMMOUSEENTER(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMDRAWITEM(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMEASUREITEM(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCLBUTTONDBLCLK(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCLBUTTONDOWN(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCLBUTTONUP(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCMBUTTONDBLCLK(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCMBUTTONDOWN(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCMBUTTONUP(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCMOUSEMOVE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCPAINT(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCRBUTTONDBLCLK(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCRBUTTONDOWN(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCRBUTTONUP(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMPAINT(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMRBUTTONDBLCLK(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMRBUTTONDOWN(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMRBUTTONUP(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMVSCROLL(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMHSCROLL(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMERASEBKGND(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMLBUTTONDBLCLK(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMLBUTTONDOWN(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMLBUTTONUP(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMBUTTONDBLCLK(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMBUTTONDOWN(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMBUTTONUP(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMENUSELECT(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMOUSEACTIVATE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMOUSEHOVER(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMOUSELEAVE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMOUSEMOVE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMOVE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMMOVING(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCACTIVATE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCMOUSELEAVE(ref Message m)
{
base.WndProc(ref m);
}
protected virtual void WMNCMOUSEHOVER(ref Message m)
{
base.WndProc(ref m);
}
#region
public const int WM_NCMOUSEHOVER =0x02A0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -