学习 Message(3): 响应 WM_LBUTTONDOWN 消息

本例效果图:

学习 Message(3): 响应 WM_LBUTTONDOWN 消息

代码文件:

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    Memo1: TMemo;

    procedure FormCreate(Sender: TObject);

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

  protected

    {这句的输入方法: Ctrl+空格; 输入 moused 确认; 然后执行 Shift+Ctrl+C}

    procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer); override;

    {这句的输入方法: Ctrl+空格; 输入 wmlbuttondo 确认; 然后执行 Shift+Ctrl+C}

    procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);

begin

  Memo1.Clear;

end;



{响应 WM_LBUTTONDOWN 消息的方法 1: OnMouseDown 事件}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  Memo1.Lines.Add('OnMouseDown');

end;



{响应 WM_LBUTTONDOWN 消息的方法 2: 覆盖父类的 MouseDown 方法}

procedure TForm1.MouseDown(Button: TMouseButton; Shift: TShiftState; X,

  Y: Integer);

begin

  inherited; {可以去掉或下移这句再试}

  Memo1.Lines.Add('MouseDown');

end;



{响应 WM_LBUTTONDOWN 消息的方法 3: 直接使用消息方法}

procedure TForm1.WMLButtonDown(var Message: TWMLButtonDown);

begin

  Memo1.Lines.Add('WM_LBUTTONDOWN');

  inherited; {可以去掉或上移这句再试}

end;



end.


 
   
窗体文件:

object Form1: TForm1

  Left = 0

  Top = 0

  Caption = 'Form1'

  ClientHeight = 123

  ClientWidth = 233

  Color = clBtnFace

  Font.Charset = DEFAULT_CHARSET

  Font.Color = clWindowText

  Font.Height = -11

  Font.Name = 'Tahoma'

  Font.Style = []

  OldCreateOrder = False

  OnCreate = FormCreate

  OnMouseDown = FormMouseDown

  PixelsPerInch = 96

  TextHeight = 13

  object Memo1: TMemo

    Left = 0

    Top = 0

    Width = 137

    Height = 123

    Align = alLeft

    Lines.Strings = (

      'Memo1')

    ScrollBars = ssVertical

    TabOrder = 0

    ExplicitHeight = 206

  end

end


 
   

后面还有更多响应消息的办法.

你可能感兴趣的:(message)