在我的程序中启动另外一个程序,如何让这个被启动的程序成为我程序的一个子窗体? ( 积分: 50 )

  • 主题发起人 主题发起人 孤灯夜影
  • 开始时间 开始时间

孤灯夜影

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);

var
SourceWnd:HWND ; //外部程序窗体句柄
DestinationWnd: HWND; //自己窗体句柄
r:TRECT; // 外部程序窗体大小
begin
WinExec('calc.exe',sw_HIDE);
SourceWnd := FindWindow(nil,'计算器');
DestinationWnd:=form1.handle;
GetWindowRect(SourceWnd,r);

if SourceWnd > 0 then
begin
windows.SetParent(SourceWnd, DestinationWnd);
movewindow(SourceWnd,0,0,r.Right-r.Left ,r.Bottom -r.Top,true);
showwindow(SourceWnd,sw_show);
end

else
ShowMessage('没有发现计算器!');

end;

SourceWnd > 0 是什么意思
请大侠指点
 
procedure TForm1.Button1Click(Sender: TObject);

var
SourceWnd:HWND ; //外部程序窗体句柄
DestinationWnd: HWND; //自己窗体句柄
r:TRECT; // 外部程序窗体大小
begin
WinExec('calc.exe',sw_HIDE);
SourceWnd := FindWindow(nil,'计算器');
DestinationWnd:=form1.handle;
GetWindowRect(SourceWnd,r);

if SourceWnd > 0 then
begin
windows.SetParent(SourceWnd, DestinationWnd);
movewindow(SourceWnd,0,0,r.Right-r.Left ,r.Bottom -r.Top,true);
showwindow(SourceWnd,sw_show);
end

else
ShowMessage('没有发现计算器!');

end;

SourceWnd > 0 是什么意思
请大侠指点
 
SourceWnd > 0 表示该句柄有效。不为nil。
 
接受答案了.
 
后退
顶部