但是窗口上有label,image这些控件,我想鼠标左键不管点击哪都可以关闭,但是最开始点击label,image控件的时候怎么不响应,点窗口其他地方,再去点label或者image又会响应?
procedure WMmouse(var Msg: TMessage); message WM_LBUTTONDOWN;用的这个消息。

解决方案 »

  1.   

    vcl下,所有的控件点击事件都挂到FormClick事件
    FMX,控件有个HitTest,可以穿透控件
      

  2.   

    在form的onlick事件中,点击image也不响应啊,我想就是鼠标左键不管点击窗口哪个地方都能执行,有没有什么其他方法啊?
      

  3.   

    在form的onlick事件中,点击image也不响应啊,我想就是鼠标左键不管点击窗口哪个地方都能执行,有没有什么其他方法啊?贴出你的代码看看
      

  4.   

    在form的onlick事件中,点击image也不响应啊,我想就是鼠标左键不管点击窗口哪个地方都能执行,有没有什么其他方法啊?贴出你的代码看看
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, pngimage;type
      TForm1 = class(TForm)
        btn_1: TButton;
        Button1: TButton;
        lbl_1: TLabel;
        img_1: TImage;
        procedure btn_1Click(Sender: TObject);
        procedure FormShow(Sender: TObject);
        procedure FormClick(Sender: TObject);
      private
        procedure WMmouse(var Msg: TMessage); message WM_LBUTTONDOWN;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation
    {$R *.dfm}procedure TForm1.btn_1Click(Sender: TObject);
    begin
      ShowMessage(DateToStr(Now));
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      btn_1.Visible := False;
      btn_1.Enabled := True;
    end;procedure TForm1.WMmouse(var Msg: TMessage);
    begin
        ShowMessage('123');
        inherited;
    end;end.
    我现在就试试,就是想不管点击窗口哪里它都能执行一段代码,不管是窗口本身还是点击的控件
      

  5.   

    界面上放一个控件
    ApplicationEvents1procedure TForm5.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
    begin
      if Msg.Message = WM_LBUTTONDOWN then
        caption := DateTimeToStr(now());
    end;