unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, sockets;
const
wm_mymessage = wm_user + 1;
type
TForm1 = class(TForm)
btn1: TButton;
procedure FormCreate(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure mymessage(var Msg: TMsg; var Handled: Boolean);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
application.onmessage := mymessage;
end;procedure TForm1.mymessage(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message = wm_mymessage then // 为什么收不到?
showmessage('ok');
end;procedure TForm1.btn1Click(Sender: TObject);
begin
// sendmessage(handle, wm_mymessage,0, 0);
sendmessage(application.handle, wm_mymessage,0, 0); //
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, sockets;
const
wm_mymessage = wm_user + 1;
type
TForm1 = class(TForm)
btn1: TButton;
procedure FormCreate(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure mymessage(var Msg: TMsg; var Handled: Boolean);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
application.onmessage := mymessage;
end;procedure TForm1.mymessage(var Msg: TMsg; var Handled: Boolean);
begin
if msg.message = wm_mymessage then // 为什么收不到?
showmessage('ok');
end;procedure TForm1.btn1Click(Sender: TObject);
begin
// sendmessage(handle, wm_mymessage,0, 0);
sendmessage(application.handle, wm_mymessage,0, 0); //
end;end.
sendmessage(application.handle, wm_mymessage,0, 0); //
换成
Postmessage(application.handle, wm_mymessage,0, 0); //
application.onmessage := mymessage;
getcurrentprocess 和 getcurrentprocessID得到的是什么值,和窗体句柄有什么关系?谢谢
在application里面发消息到自己,sendmessage这样等为什么不会loop而当掉?