`
sbabzc
  • 浏览: 36324 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Delphi里WM_COPYDATA消息传递的使用

 
阅读更多
首先是发送数据

procedure SendMsg(Msg: string);
var
  DS: TCopyDataStruct;
  hd: THandle;
begin
  Ds.cbData := Length(Msg) + 1;
  GetMem(Ds.lpData, Ds.cbData);
  StrCopy(ds.lpData, PChar(Msg));
  if Hd <> 0 then // 发送WM_COPYDATA消息
    SendMessage(Application.MainForm.Handle, WM_COPYDATA, Application.Handle, Cardinal(@ds));
  FreeMem(Ds.lpData); //释放资源
end;

然后是接收数据
procedure MyMessage(var t: TWMCopyData); message WM_COPYDATA;
procedure TMainFrame.MyMessage(var t: TWMCopyData);
var
  s: string;
begin //接受消息并显示。
  s := StrPas(t.CopyDataStruct^.lpData);
  if memLog.Lines.Count > 1000 then
    memLog.Clear;
  memLog.Lines.Add(s);
  AddLog(s);
end;





本文地址:http://www.xszlo.com/article/2012-12-08/7612.html,转发请保留这个地址,谢谢
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics