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;





本文地址:[url]http://www.xszlo.com/article/2012-12-08/7612.html[/url],转发请保留这个地址,谢谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值