截获WM_LBUTTONDBLCLK,设置一个记数器i; if (i mod 2) = 0 then begin //Do SomeThing end;
也许你没有那本书,我给你简单的写点代码,你看看吧!动态创建一个TTimer 如下: FTimer:=TTimer.Create(Self); With FTimer do begin Enabled:=fasle; Interval:=GetDoubleClickTime;//取得两次单几的最大时间 Ontimer:=OnButtonTimer; end;procedure OnButtonTime(Sender:TObject); begin FTimer.Enabled:=faluse; if(not FNoShowClick) and Assigned(FOnclick) then FOnclick(Self); 单机的事件调用 FNoShowClick:=Faslue; end;记得再回调函数里面设置相应的标志,其中就是如果是WM_lbuttondwon的时候,让计时器启动,然后如果响应了WM_luttondblclk的话,就把FnoshowClick设置为true,这样,就可以解决问题了!
例如:
if (message.lparam=wm_clik) then
begin
end;//大概是这样的。好像是在某个消息处理函数里的写。
// 但是我不能确认,所以上面的不一定正确。
//过去做过,现在忘了。 不好意思!! 这只是个//建议!!
if (i mod 2) = 0 then
begin
//Do SomeThing
end;
如下:
FTimer:=TTimer.Create(Self);
With FTimer do
begin
Enabled:=fasle;
Interval:=GetDoubleClickTime;//取得两次单几的最大时间
Ontimer:=OnButtonTimer;
end;procedure OnButtonTime(Sender:TObject);
begin
FTimer.Enabled:=faluse;
if(not FNoShowClick) and Assigned(FOnclick) then
FOnclick(Self); 单机的事件调用
FNoShowClick:=Faslue;
end;记得再回调函数里面设置相应的标志,其中就是如果是WM_lbuttondwon的时候,让计时器启动,然后如果响应了WM_luttondblclk的话,就把FnoshowClick设置为true,这样,就可以解决问题了!