问题:delphi,点击一个控件,为什么会发3次点击消息
描述:

 procedure Tfrm_MoudleManager.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if (grd_MoudleList.Handle = Msg.hwnd) and
    ((Msg.message = WM_LBUTTONDOWN) or (Msg.message = WM_RBUTTONDOWN)) then
  begin
            lbl1.Caption := IntToStr(StrToInt(lbl1.Caption) + 1);
            DoSomething...
      Handled := True;
    end;
  end;
end;

当我点击一下grd_MoudleList时候,lbl1的caption会加3,也就是发了3次点击消息。。这是为什么?
解决方案1:

加断点,看看每次的Msg.message是什么。

解决方案2:

mousedown一个MSG
mouseup一个MSG
至于第三个应该是你调用这个MSG也产生了一个MSG

解决方案3:

响应三个事件的响应:
OnClick
OnMouseDown
OnMouseUp
就有3次了。

上一篇在不同语言版本中控件大小不同
下一篇delphi DLL 换文件夹,找不到目录
明星图片
相关文章
《delphi,点击一个控件,为什么会发3次点击消息》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)