×

DotNet(C#)自定义WinForm界面控件之Window消息

Kalet Kalet 发表于2009-03-20 12:00:14 浏览335 评论0

抢沙发发表评论

写在前面:要自定义WinForm界面控件,WndProc方法的重写恐怕是必不可少了,它是对系统消息的捕获和处理方法,自定义控件时,可以捕获重画,鼠标移动等消息,然后重画控件,从而改变控件的外观,这样就可以达到自定义的功能,特别是美化控件,就一定要捕获系统消息,下面介绍一些重要的系统消息,这些消息基本上是继承.Net基础控件(如TextBox,Button之类)之后必不可少的需要捕获的消息。如WM_PAINT,WM_NCPAINT等,你可以不知道吗?如果你真的不知道,你可以说,你是个入门的GUI编程者吗?下面,只简单地列举消息和说明意思,但并不举例子说明。


WM_PAINT = 0x000F
其中0x000F是C#中表示int的一种写法,可以定义为constDotNet(C#)自定义WinForm界面控件之Window消息
要求一个窗口重画自己


WM_NCPAINT = 0x0085
当某个窗口的框架必须被绘制时,程序发送此消息给窗口


WM_ACTIVATE = 0x0006
一个窗口被激活或失去激活状态


WM_KILLFOCUS = 0x0008
失去焦点


WM_NCCALCSIZE = 0x0083
当某个窗口的客户区域必须被核算时发送此消息


WM_NCACTIVATE = 0x0086
此消息发送给某个窗口 仅当它的非客户区需要被改变来显示是激活还是非激活状态


WM_SETTEXT = 0x000C
应用程序发送此消息来设置一个窗口的文本


WM_LBUTTONDOWN = 0x0201
按下鼠标左键


WM_LBUTTONUP = 0x0202
释放鼠标左键


WM_LBUTTONDBLCLK = 0x0203DotNet(C#)自定义WinForm界面控件之Window消息
双击鼠标左键


WM_MOUSEMOVE = 0x0200
移动鼠标


WM_SYSCOMMAND = 0x0112
当用户选择窗口菜单的一条命令或当用户选择最大化或最小化时那个窗口会收到此消息


WM_SIZE = 5
改变一个窗口的大小


WM_SIZING = 0x0214
当用户正在调整窗口大小时发送此消息给窗口;通过此消息应用程序可以监视窗口大小和位置也可以修改他们


WM_ERASEBKGND = 0x0014
当窗口背景必须被擦除时(例在窗口改变大小时)


WM_SHOWWINDOW = 0x18
当隐藏或显示窗口是发送此消息给这个窗口


WM_NCCREATE = 0x0081
当某个窗口第一次被创建时,此消息在WM_CREATE消息发送前发送


WM_WINDOWPOSCHANGING = 0x0046
发送此消息给那个窗口的大小和位置将要被改变时,来调用setwindowpos函数或其它窗口管理函数


WM_WINDOWPOSCHANGED = 0x0047DotNet(C#)自定义WinForm界面控件之Window消息
发送此消息给那个窗口的大小和位置已经被改变时,来调用setwindowpos函数或其它窗口管理函数



群贤毕至

访客