原始程序:
//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中呀?