正在阅读:Delphi基础:Window 消息大全使用详解Delphi基础:Window 消息大全使用详解

2004-02-14 09:34 出处:PConline 作者:cwxiao888/CSDN 责任编辑:linjixiong

  消息,就是指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 m、l P a r a m和P 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;
  应用程序发送此消息来设置一个窗口的文本

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品