关于消息一问(50分)

  • 主题发起人 主题发起人 awfigsk
  • 开始时间 开始时间
A

awfigsk

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.WndProc(var Message: TMessage);
begin
lStart1 := GetTickCount;
inherited;
lStart2 := GetTickCount;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
lEnd := GetTickCount;
end;
像上面这段代码中,lStart1,lStart2,lEnd,这三个数字从大到小如何排?
为什么呢?
 
lStart2>lStart1>lEnd
 
不对不对
应该是lStart2>lEnd>lStart1
 
当你点击了一个按钮后,WIndows系统给活动窗口发送WM_MOUSECLICK事件,代码进入WndProc,于是第一个lStart1得到系统时间,时间继续走,inherited里面,VCL的派发机制会把消息发送给Button1,触发Button1Click事件处理方法,lEnd记录下时间(比lStart1大),接着代码回到WndProc,执行inherited后面的lStart2的部分,于是lStart2得到系统时间(lStart2>lEnd>lStart1)。OVER
 
lStart2>lEnd>lStart1
 
同意zqw0117
 

Similar threads

I
回复
0
查看
480
import
I
I
回复
0
查看
518
import
I
I
回复
0
查看
556
import
I
S
回复
0
查看
751
SUNSTONE的Delphi笔记
S
后退
顶部