请问一个线程如何接收自定义的消息?附源码
yunan 2003-06-06 09:26:13
SpeedButton4Click 这个事件没有响应,为什么?
const
wm_mymessage=wm_user+5;
type th=class(tobject)
public
thread:THandle;
procedure WMUser(var msg:Tmessage);
message WM_mymessage;
end;
var
thread1:thandle;
thid:DWORD;
lpmsg:msg;
x:bool;
h:th;
procedure th.WMUser(var msg:tmessage);
begin
showmessage('消息啊消息');
end;
procedure threadfunc1;
var i:integer;
begin
for i:=0 to 100000000 do
begin
form1.Edit1.text:=inttostr(i);
end;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
h:=th.Create ;
if h.thread<>0 then exit;
h.thread:=createthread(nil,0,@ThreadFunc1,nil,CREATE_SUSPENDED,thid);
if h.thread=0 then
showmessage('创建线程失败');
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
suspendthread(h.thread);
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
resumethread(h.thread);
end;
procedure TForm1.SpeedButton4Click(Sender: TObject);
var x:bool;
begin
x:=postmessage(h.thread ,WM_close,0,0);
//这个地方postmessage执行不成功
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
TerminateThread(h.thread , 0);
h.thread:=0;
end;