鼠标左键单击是if (Msg.message  =  WM_LBUTTONDOWN) then.... 再加上CTRL怎么表示呢?
也就是 检测到按住CTRL并且单击鼠标左键的时候 开始执行代码。谢谢

解决方案 »

  1.   

    if(message.Msg == WM_LBUTTONDOWN && message.WParam&MK_CONTROL)
    C++方式
      

  2.   

    MouseDown或MouseUp事件下if (ssCtrl in Shift) then beginend;
      

  3.   

    消息是: if message.WParam = (MK_LBUTTON+MK_CONTROL) then不过MouseDown事件就简单些
      

  4.   

    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm2 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        procedure Msgpro(var msg: TMessage); message WM_LBUTTONDOWN;
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}// 四楼的方法
    procedure TForm2.Msgpro(var msg: TMessage);
    begin
      if msg.WParam = MK_LBUTTON + MK_CONTROL then
        ShowMessage('control + 左键');
    end;procedure TForm2.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 50;
      Timer1.Enabled := True;
    end;procedure TForm2.Timer1Timer(Sender: TObject);
    var
      st: string;
    begin
      if GetKeyState(VK_CONTROL) and $80 <> 0 then
      st := st + 'control按下 ';  if GetKeyState(VK_SHIFT) and $80 <> 0 then
      st := st + 'shift按下 ';  if GetKeyState(VK_RETURN) and $80 <> 0 then
      st := st + 'return按下 ';  if GetKeyState(VK_LBUTTON) and $80 <> 0 then
      st := st + '左键按下 ';  if GetKeyState(VK_RBUTTON) and $80 <> 0 then
      st := st + '右键按下 ';  if GetKeyState(VK_UP) and $80 <> 0 then
      st := st + '向上按下 ';  if GetKeyState(VK_RIGHT) and $80 <> 0 then
      st := st + '向左按下 ';  caption := st;
    end;end.
      

  5.   

    if (ssCtrl in Shift) then 
    begin
    end;
      

  6.   

    判断鼠标的同时,判断下面var
      i:Integer;
    begin
      i := GetKeyState(VK_CONTROL);
      if i < 0 then
        ShowMessage('ctrl被按下');
    end;