请问如何将DLL中的窗体显示在其调用程序的一个PANEL上呢, 非常感谢大家? ( 积分: 50 )

L

liu2510

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何将DLL中的窗体显示在其调用程序的一个PANEL上呢, 窗体显示在PANEL里面,非常感谢大家?
 
L

liu2510

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何将DLL中的窗体显示在其调用程序的一个PANEL上呢, 窗体显示在PANEL里面,非常感谢大家?
 
Y

ysai

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/keylife/iblog_show.asp?xid=2438
 
X

xianguo

Unregistered / Unconfirmed
GUEST, unregistred user!
需要设定parent属性吧
 
A

app2001

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2980625
难题求助!!!如何才能将DLL中的FORM2融合在FORM1中的PANEL上?
 
L

liu2510

Unregistered / Unconfirmed
GUEST, unregistred user!
原始程序:
//frmDll为DLL中的FORM,frmEXE为EXE主窗体,下同
//下面的代码为什么直接引用Exe中的Form又引用Dll中的Form?只是为了方便阅读,实际只是传递一个句柄,下同
//panWorkSpace为Exe中的一个TPanel,DLL中的窗体要嵌入其中
frmDll.WindowState := wsMaximized;
frmDll.BorderStyle := bsNone;
windows.SetParent(frmDll.Handle,frmExe.panWorkSpace.Handle);

发现Tab及Enter键在嵌入的FORM中无效,去掉
frmDll.BorderStyle := bsNone;
后正常,但我不需要标题,就用API解决
frmDll.WindowState := wsMaximized;
SetWindowLong(frmDll.Handle,GWL_STYLE,GetWindowLong(frmDll.Handle,GWL_STYLE) and not (WS_CAPTION or WS_THICKFRAME));
windows.SetParent(frmDll.Handle,frmExe.panWorkSpace.Handle);
其中WS_CAPTION和WS_THICKFRAME分别表示标题栏和边框,问题解决.


请问YSAI 以上代码那些写在DLL中,那些写在EXE中呀?
 
Y

ysai

Unregistered / Unconfirmed
GUEST, unregistred user!
上面的代码是EXE中的
 

Similar threads

D
回复
0
查看
817
DelphiTeacher的专栏
D
D
回复
0
查看
623
DelphiTeacher的专栏
D
顶部