dll中的cli子窗体如何显是在主mdi窗体中的panel中,请指教(100分)

  • 主题发起人 主题发起人 aocandy
  • 开始时间 开始时间
A

aocandy

Unregistered / Unconfirmed
GUEST, unregistred user!
能不能将在DLL中调用的子窗口显是在主程序的panel里啊,记得平时的情况可以这样
form.parent:=panel1;
这样设置,但是这样的前提是子窗体和主的同在一个程序了,现在我的子窗体是在DLL中,
在这样不行,可能是在DLL中的form.parent找不到panel1吧,这该怎么办那
 
在CSDN上也看到这个问题,可能就是你,虽然我一下不知道用什么办法好,不过这个
技术你也学一下吧
//该函数最好放在其它的单元中
procedure setp(ch, ph: HWnd);
begin
SetParent(ch, ph);
end;

procedure from1.bibtnclick(sender:object);
var
sHwnd :Hwnd;
begin

//这里写你调DLL的语句
........
sHwnd :=FindWindow(nil,'这里写你DLL中的窗体名');
if sHwnd <> 0 then
begin
setp(sHwnd,form.Panel1.Handle);
SendMessage(sHwnd,WM_SYSCOMMAND,SC_MAXIMIZE, 0);
end;
end;
这个用DLL的我没有试过,但用其它程序可以用。
 
后退
顶部