鼠标左键单击是if (Msg.message = WM_LBUTTONDOWN) then.... 再加上CTRL怎么表示呢?
也就是 检测到按住CTRL并且单击鼠标左键的时候 开始执行代码。谢谢
也就是 检测到按住CTRL并且单击鼠标左键的时候 开始执行代码。谢谢
解决方案 »
- 正在写的Delphi组件开发教程指南
- delphi调用DLL的问题
- 用了manifest, panel 和groupbox上的颜色 没办法显示了
- 对数据库中记录的查询问题,大家看看这个应如何写查询语句?
- 怎样在 TRichEdit 里面追加一段带格式的文本
- 如何在以BMP图象为背景的窗体或者TImage控件上作图?
- 讨论:COM+中用RecordSet查询/更新数据的优劣
- 在BDE里连接一个access数据库,user name 为admin怎么不能打开数据库呢
- 在ADO的SQLSERVER连接设置中,服务器名称列表只列出本机上的SQLSERVER服务器还是把整个网络中的SQLSERVER服务器都能列出来?如果有重名现
- 如何在htm万年历中添加10天循环的节日提醒
- udp设置超时问题
- 关于Left Join的问题,为何不显示值
C++方式
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.
begin
end;
i:Integer;
begin
i := GetKeyState(VK_CONTROL);
if i < 0 then
ShowMessage('ctrl被按下');
end;