delphi里如何使用SendMessage发送字符串?
Delphi代码
SendMessage(Form1.Handle,WM_TEST_END,Integer(@MyId),1);
其中MyId是要返回的字符串
在主窗口中使用如下代码:
先在public中加入消息函数的声明
字符串长度17模式串长度Delphi代码
procedure WMTestEnd(var AMsg:TMessage);message WM_TEST_END;//消息函数
其中WM_TEST_END是自定义的消息
再在implementation写函数
Delphi代码
procedure TForm1.WMTestEnd(var AMsg:TMessage);
var
s:string;
begin
s:=string(Pointer(AMsg.wParam)^);
Memo1.Lines.Add(s);
end;
需要注意的是,如果你在线程中,一定要使用SendMessage来发送消息,如果使用PostMessage会出错。原因我想是因为 PostMessage发送消息后线程会继续执行下去,当主窗口收到这个消息并处理时,线程可能已经结束了,这时指向字符串的那个指针就会出错;而 SendMessage发送消息后会将线程挂起,直到消息处理完成后,才继续执行下面代码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论