加载中…
个人资料
finch
finch
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,113
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

delphi里如何使用SendMessage发送字符串?

(2011-07-25 15:21:37)
标签:

杂谈

分类: Delphi
Delphi代码
SendMessage(Form1.Handle,WM_TEST_END,Integer(@MyId),1);  
其中MyId是要返回的字符串
在主窗口中使用如下代码:
先在public中加入消息函数的声明
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发送消息后会将线程挂起,直到消息处理完成后,才继续执行下面代码。 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有