procedure Tfrm_fun_01_gpsdata_newobj.Button2Click(Sender: TObject);
var
cdds: TCopyDataStruct; // 消息体
hd: THandle;
begin
cdds.dwData := 0; // dwdata初始化
cdds.cbData := length(Edit1.Text) + 1; // cbData定义消息体的字符长度,+1个长度,是为了存储结束符
cdds.lpData := pchar(Edit1.Text); // 告诉消息体,LPDATA的指针指向memo1.Text存储位置的指针
// fHwnd:=
hd := FindWindow('Tform3', nil); //先查找主窗体句柄
hd := FindWindowEx(hd, 0, 'MDIClient', nil);//根据主窗口句柄查找MDI子窗口容器
hd := FindWindowEx(hd, 0, 'Tfrm_fun_01_gpsdata_main', nil);//根据MDI子窗口容器句柄查找子窗口
if hd <> 0 then
SendMessage(hd, WM_COPYDATA, 0, LongWord(@cdds)) // 发送消息体
else
ShowMessage('目标窗口没找到!');
// showmessage(inttostr(integer(fardizhi)));
end;
----------------------------------------
type
Tfrm_fun_01_gpsdata_main = class(TForm)
top: TPanel;
right: TPanel;
bottom: TPanel;
RadioGroup1: TRadioGroup;
Splitter1: TSplitter;
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
。。。。。
procedure Mymessage(Var Msg: TMessage); Message WM_COPYDATA; // 定义函数接收过程
end;
procedure Tfrm_fun_01_gpsdata_main.Mymessage(var Msg: TMessage); // 定义接收消息的具体过程
var
cdds: TcopyDataStruct;
begin
if Msg.Msg = WM_COPYDATA then
begin
cdds := PcopyDataStruct(Msg.LParam)^;
if cdds.dwData = 0 then
begin
Edit1.Text := '0' + (Pchar(cdds.lpData));
end;
if cdds.dwData = 1 then
begin
Edit1.Text := '1' + (Pchar(cdds.lpData));
end;
if cdds.dwData = 2 then
begin
Edit1.Text := '2' + (Pchar(cdds.lpData));
end;
if cdds.dwData = 3000 then
begin
Edit1.Text := '3000' + (Pchar(cdds.lpData));
end;
end;
end;