我的程序有两个窗体MainForm和ControlForm还有一个公共函数单元PublicUnit
在PublicUnit中定义一个消息WM_GO和一个线程的函数TRSend,一个实例SThread
SThread := TRSend.Create(false);
然后在ConctrolForm中使用PostThreadMessage(SThread.ThreadID,WM_GO,0,0);
在线程函数中有
var
msg: TMsg;
if Assigned(ControlForm) then
begin
//PeekMessage(msg,0,0,0,PM_REMOVE);
PeekMessage(msg,ControlForm.Handle,0,0,PM_REMOVE);
case msg.message of
WM_GO:
begin
MainForm.Memo1.Lines.Add('ss');
msg.message := 0;
end;
end;结果发现取不到消息,请问该怎么办?
在PublicUnit中定义一个消息WM_GO和一个线程的函数TRSend,一个实例SThread
SThread := TRSend.Create(false);
然后在ConctrolForm中使用PostThreadMessage(SThread.ThreadID,WM_GO,0,0);
在线程函数中有
var
msg: TMsg;
if Assigned(ControlForm) then
begin
//PeekMessage(msg,0,0,0,PM_REMOVE);
PeekMessage(msg,ControlForm.Handle,0,0,PM_REMOVE);
case msg.message of
WM_GO:
begin
MainForm.Memo1.Lines.Add('ss');
msg.message := 0;
end;
end;结果发现取不到消息,请问该怎么办?
if PeekMessage(msg,ControlForm.Handle,0,0,PM_REMOVE) then
发现返回值一直是false。