小弟自学delphi才不久,所以请各位多多帮忙。我在网上看到一个贴子,照帖子说的我在private部分加入了下列代码:procedure wmnchittest

  • 主题发起人 主题发起人 hitskys
  • 开始时间 开始时间
H

hitskys

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟自学delphi才不久,所以请各位多多帮忙。我在网上看到一个贴子,照帖子说的我在private部分加入了下列代码:procedure wmnchittest(var msg:twmnchittest);message wm_nchittest;然我在implementation实现了完整过程::(0分)<br />procedure TForm1.wmnchittest(var msg:twmnchittest);
begin
inherited;
if (htclient=msg.result) then msg.result:=htcaption;
end;
 可是我还没有让它运行,为什么它就起作用了??
我没有调用它啊,难道只是声明一下也会运行吗??我实在是搞不懂,请多多赐教!
还有很不好意思,我问得太多了,所以分没有了,真不好意思!
 
wm_nchittest消息驱动的呀!
 
我不是很明白,能再讲讲吗??谢谢了!
 
上面说的没错!windows时刻都有消息发生,所以他自然就执行了。
 
从TControl继承下来的的类,如果你定义了Message关键字的类方法(消息响应),DELPHI根据相应的消息
自动调用你的消息响应方法。
比如你上面定义了wmnchittest消息驱动,则在Form上接收到这个消息后(WINDOWS发给它的),
DELPHI就运行你的方法,而你的方法是把在客户区的鼠标消息让程序"误"以为是在标题栏的,就移动它自己,
这就实现了在客户区拖动窗口如同在标题栏了。
 
后退
顶部