VCL中常用消息汇总

http://www.delphifans.com/InfoView/Article_53.html  
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg  
 
它在Windows单元中是这样声明的:  
type  
TMsg  =  packed  record  
hwnd:  HWND;  /  /
窗口句柄  
message:  UINT;  /  /
消息常量标识符  
wParam:  WPARAM  ;  //  32
位消息的特定附加信息  
lParam:  LPARAM  ;  //  32
位消息的特定附加信息  
time:  DWORD;  /  /
消息创建时的时间  
pt:  TPoint;  /  /
消息创建时的鼠标位置  
end;  
 
消息中有什么?

是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释:  
hwnd  32
位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)  
message  
用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。  
wParam  
通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。  
lParam  
通常是一个指向内存中数据的指针。由于W  P  a  r  a  ml  P  a  r  a  mP  o  i  n  t  e  r都是3  2位的,  
因此,它们之间可以相互转换。  
 
WM_NULL  =  $0000;  
WM_CREATE  =  $0001;  
应用程序创建一个窗口  
WM_DESTROY  =  $0002;  
一个窗口被销毁  
WM_MOVE  =  $0003;  
移动一个窗口  
WM_SIZE  =  $0005;  
改变一个窗口的大小  
WM_ACTIVATE  =  $0006;  
一个窗口被激活或失去激活状态;  
WM_SETFOCUS  =  $0007;  
获得焦点后  
WM_KILLFOCUS  =  $0008;  
失去焦点  
WM_ENABLE  =  $000A;  
改变enable状态  
WM_SETREDRAW  =  $000B;  
设置窗口是否能重画    
WM_SETTEXT  =  $000C; 

应用程序发送此消息来设置一个窗口的文本  
WM_GETTEXT  =  $000D;  
应用程序发送此消息来复制对应窗诘奈谋镜交撼迩?  
WM_GETTEXTLENGTH  =  $000E;  
得到与一个窗口有关的文本的长度(不包含空字符)  
WM_PAINT  =  $000F;  
要求一个窗口重画自己  
WM_CLOSE  =  $0010;  
当一个窗口或应用程序要关闭时发送一个信号  
WM_QUERYENDSESSION  =  $0011;  
当用户选择结束对话框或程序自己调用ExitWindows函数  
WM_QUIT  =  $0012;  
用来结束程序运行或当程序调用postquitmessage函数    
WM_QUERYOPEN  =  $0013;  
当用户窗口恢复以前的大小位置时,把此消息发送给某个图标  
WM_ERASEBKGND  =  $0014;  
当窗口背景必须被擦除时(例在窗口改变大小时)  
WM_SYSCOLORCHANGE  =  $0015;  
当系统颜色改变时,发送此消息给所有顶级窗口  
WM_ENDSESSION  =  $0016;  
当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,  
通知它对话是否结束  
WM_SYSTEMERROR  =  $0017;  
WM_SHOWWINDOW  =  $0018;  
当隐藏或显示窗口是发送此消息给这个窗口  
WM_ACTIVATEAPP  =  $001C;  
发此消息给应用程序哪个窗口是激活的,哪个是非激活的;  
WM_FONTCHANGE  =  $001D;  
当系统的字体资源库变化时发送此消息给所有顶级窗口  

WM_TIMECHANGE  =  $001E;  
当系统的时间变化时发送此消息给所有顶级窗口  
WM_CANCELMODE  =  $001F;  
发送此消息来取消某种正在进行的摸态(操作)  
WM_SETCURSOR  =  $0020;  
如果鼠标引起光标在某个窗口中移动且鼠标输入没有被捕获时,就发消息给某个窗口  
WM_MOUSEACTIVATE  =  $0021;  
当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口  
WM_CHILDACTIVATE  =  $0022;  
发送此消息给MDI子窗口当用户点击此窗口的标题栏,或当窗口被激活,移动,改变大小  
WM_QUEUESYNC  =  $0023;  
此消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACKhook程序  
分离出用户输入消息  
WM_GETMINMAXINFO  =  $0024;  
此消息发送给窗口当它将要改变大小或位置;  
WM_PAINTICON  =  $0026;  
发送给最小化窗口当它图标将要被重画  
WM_ICONERASEBKGND  =  $0027;  
此消息发送给某个最小化窗口,仅当它在画图标前它的背景必须被重画  
WM_NEXTDLGCTL  =  $0028;  
发送此消息给一个对话框程序去更改焦点位置  
WM_SPOOLERSTATUS  =  $002A;  
每当打印管理列队增加或减少一条作业时发出此消息    
WM_DRAWITEM  =  $002B;  
buttoncomboboxlistboxmenu的可视外观改变时发送  
此消息给这些空件的所有者  
WM_MEASUREITEM  =  $002C;  
button,  combo  box,  list  box,  list  view  control,  or  menu  item  被创建时  
发送此消息给控件的所有者 

WM_DELETEITEM  =  $002D;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值