unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
const
WM_XBUTTONDOWN = $020B;
WM_XBUTTONUP = $020C;
WM_XBUTTONDBLCLK = $020D;
MK_XBUTTON1 = $20;
MK_XBUTTON2 = $40;
type
TForm1 = class(TForm)
private
procedure WMXButtonDown(var Msg: TWMMouse); message WM_XBUTTONDOWN;
procedure WMXButtonUp(var Msg: TWMMouse); message WM_XBUTTONUP;
procedure WMXButtonDblClk(var Msg: TWMMouse); message WM_XBUTTONDBLCLK;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.WMXButtonDown(var Msg: TWMMouse);
begin
if Lo(Msg.Keys) = MK_XBUTTON1 then
MessageBox(0, 'WM_XBUTTONDOWN + MK_XBUTTON1', nil, 0)
else if Lo(Msg.Keys) = MK_XBUTTON2 then
MessageBox(0, 'WM_XBUTTONDOWN + MK_XBUTTON2', nil, 0);
end;
procedure TForm1.WMXButtonUp(var Msg: TWMMouse);
begin
if Lo(Msg.Keys) = MK_XBUTTON1 then
MessageBox(0, 'WM_XBUTTONUP + MK_XBUTTON1', nil, 0)
else if Lo(Msg.Keys) = MK_XBUTTON2 then
MessageBox(0, 'WM_XBUTTONUP + MK_XBUTTON2', nil, 0);
end;
procedure TForm1.WMXButtonDblClk(var Msg: TWMMouse);
begin
if Lo(Msg.Keys) = MK_XBUTTON1 then
MessageBox(0, 'WM_XBUTTONDBLCLK + MK_XBUTTON1', nil, 0)
else if Lo(Msg.Keys) = MK_XBUTTON2 then
MessageBox(0, 'WM_XBUTTONDBLCLK + MK_XBUTTON2', nil, 0);
end;
end.