本例效果图:
代码文件:
代码文件:
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