谁能解释Handle和HWD是什么?(10分)

  • 主题发起人 liaoqianlin
  • 开始时间
L

liaoqianlin

Unregistered / Unconfirmed
GUEST, unregistred user!
最近看API时碰到了一点问题,那就是Windows发出一个消息,告诉应用程序某个事件发生了<br>时,如果调用了API的话,就要传递“句柄“,还说什么句柄在Delphi中就是"Handle",而<br>我在看Core Win32 API时,发现不少函数是返回一个HWD型的值,而在开发指南中说消息本<br>身是作为记录传递给应用程序的,记录类型为TMsg:<br>Type<br>TMsg=packed record<br>&nbsp; &nbsp;hwnd:HWND;//窗口句柄<br>&nbsp; &nbsp;message:UINT;//消息常量标志符<br>&nbsp; &nbsp;wParam:wPARAM;//32位消息的特定附加信息<br>&nbsp; &nbsp;lParam:LPARAM;//32位消息的特定附加信息<br>&nbsp; &nbsp;time:DWORD;//消息创建时的时间<br>&nbsp; &nbsp;pt:TPoint;消息创建时鼠标位置<br>end;<br>然后作者对hwnd,message,wParam,lParam做了解释,但是也不是很清楚,<br>在这里我要问的是,message是否是指WM_ACTIVATE,WM_CHAR,WM_CLOSE.......这些值,<br>还有,按钮,标签,窗体这些窗口的句柄都是什么?
 
窗体有tform.handle<br>标签没有自己的窗口,所以也没有handle<br>用spy++工具可以看到消息传递和hwnd等属性。
 
那Button的是否就是Button.handle.而且对应的是实例的(比如Button1.handle,<br>btnName.handle),Text的是否就是(txtName.handle).<br>还有就是message是否是指WM_ACTIVATE,WM_CHAR,WM_CLOSE.......这些值,<br>
 
差不多<br>是的,那些都是常量,在windows.h中定义的。
 
TWinControl = class(TControl) 这个类中有这个属性:<br>property Handle: HWnd read GetHandle;<br>所以从TWinControl继承的类都有Handle这个属性.<br>TWinControl 这个类中也有很多消息,你可以自己看看。<br>
 
多人接受答案了。
 
顶部