delphi里如何使用SendMessage发送字符串?
(2011-07-25 15:21:37)
标签:
杂谈 |
分类: Delphi |
Delphi代码
SendMessage(Form1.Handle,WM_TEST_END,Integer(@MyId),1);
其中MyId是要返回的字符串
在主窗口中使用如下代码:
先在public中加入消息函数的声明
Delphi代码
procedureWMTestEnd(var AMsg:TMessage);message WM_TEST_END;//消息函数
其中WM_TEST_END是自定义的消息
再在implementation写函数
Delphi代码
procedureTForm1.WMTestEnd(var AMsg:TMessage);
var
s:string;
begin
s:=string(Pointer(AMsg.wParam)^);
Memo1.Lines.Add(s);
end;
需要注意的是,如果你在线程中,一定要使用SendMessage来发送消息,如果使用PostMessage会出错。原因我想是因为PostMessage发送消息后线程会继续执行下去,当主窗口收到这个消息并处理时,线程可能已经结束了,这时指向字符串的那个指针就会出错;而 SendMessage发送消息后会将线程挂起,直到消息处理完成后,才继续执行下面代码。
SendMessage(Form1.Handle,WM_TEST_END,Integer(@MyId),1);
其中MyId是要返回的字符串
在主窗口中使用如下代码:
先在public中加入消息函数的声明
Delphi代码
procedure
其中WM_TEST_END是自定义的消息
再在implementation写函数
Delphi代码
procedure
var
s:string;
begin
end;
需要注意的是,如果你在线程中,一定要使用SendMessage来发送消息,如果使用PostMessage会出错。原因我想是因为
前一篇:个人软件过程