本例效果圖:
代碼文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
protected
procedure MyMouseDown(Msg: TWMMouse);
procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN;
procedure WMMButtonDown(var Message: TWMMButtonDown); message WM_MBUTTONDOWN;
procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyMouseDown(Msg: TWMMouse);
var
List: TStringList;
begin
List := TStringList.Create;
if Msg.Keys and MK_SHIFT <> 0 then List.Add('Shift');
if Msg.Keys and MK_CONTROL <> 0 then List.Add('Ctrl');
if GetKeyState(VK_MENU) < 0 then List.Add('Alt');
if Msg.Keys and MK_LBUTTON <> 0 then List.Add('Left');
if Msg.Keys and MK_MBUTTON <> 0 then List.Add('Middle');
if Msg.Keys and MK_RBUTTON <> 0 then List.Add('Right');
Canvas.TextOut(Msg.XPos, Msg.YPos, List.CommaText);
List.Free;
end;
procedure TForm1.WMLButtonDown(var Message: TWMLButtonDown);
begin
MyMouseDown(Message);
end;
procedure TForm1.WMMButtonDown(var Message: TWMMButtonDown);
begin
MyMouseDown(Message);
end;
procedure TForm1.WMRButtonDown(var Message: TWMRButtonDown);
begin
MyMouseDown(Message);
end;
end.
窗體文件:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClIEntHeight = 206
ClIEntWidth = 339
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
end