在系统中用到消息的时候会有很多,但是SendMessage跟PostMessage发送消息的时候都不能对字符串进行直接的传送,要经过一些转换,代码如下:
var
ds: TCopyDataStruct;
hd: THandle;
begin
Msg:=’这是字符消息!!’;
//同步字符消息到主UI上
ds.cbData := Length(Msg) + 1;
GetMem(ds.lpData, ds.cbData); //为传递的数据区分配内存
StrCopy(ds.lpData, PChar(Msg));
Hd := CmdParams.WinHandle;
if Hd <> 0 then
SendMessage(Hd, WM_COPYDATA, Handle,
Cardinal(@ds)) // 发送WM_COPYDATA消息
else
ShowMessage('目标窗口没找到!');
FreeMem(ds.lpData); //释放资源