我自定议了这样的消息响应函数:
procedure PreTranslateMessage(var Message: TMessage);message WM_KEYDOWN;
procedure TForm_main.PreTranslateMessage(var Message: TMessage);
var
vol : Dword;
begin
if (Message.LParam=VK_CONTROL) then
begin
if (Message.WParam=VK_LEFT) then
begin
//处理事件
end;
if (Message.WParam=VK_RIGHT) then
begin
//处理事件
end;
end;
end;为什么我的这个函数得不到任何响应呢?!
procedure PreTranslateMessage(var Message: TMessage);message WM_KEYDOWN;
procedure TForm_main.PreTranslateMessage(var Message: TMessage);
var
vol : Dword;
begin
if (Message.LParam=VK_CONTROL) then
begin
if (Message.WParam=VK_LEFT) then
begin
//处理事件
end;
if (Message.WParam=VK_RIGHT) then
begin
//处理事件
end;
end;
end;为什么我的这个函数得不到任何响应呢?!
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
private
{ Private declarations }
procedure PreTranslateMessage(var Message: TMessage);message WM_KEYDOWN;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.PreTranslateMessage(var Message: TMessage);
var
vol : Dword;
begin
showmessage('in'); // 按键就会出现!
if (Message.LParam=VK_CONTROL) then
begin
if (Message.WParam=VK_LEFT) then
begin
//处理事件
end;
if (Message.WParam=VK_RIGHT) then
begin
//处理事件
end;
end;
end;end.
键盘得操作,能够判断出来么,
我好像不行得。
--------------------------
--------------------------
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
private
{ Private declarations }
procedure PreTranslateMessage(var Message: TWMLBUTTONUP);message WM_LBUTTONUP;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.PreTranslateMessage(var Message: TWMLBUTTONUP);
begin
if Message.Keys = MK_CONTROL then
begin
showmessage('you Click Control+ Left');
end;
end;end.