A.FormStyle:=fsMDIForm B.FormStyle:=fsMDIChild 在B的单元写一个函数(注意,不是B的成员函数): function MyMDIChildProc(hwndMe:HWND;uMsg,wParam,lParam:DWORD):Integer;sdtcall; begin if (uMsg = WM_SIZE) or (uMsg = WM_MOVE) then Result := DefWindowProc(hwndMe,uMsg,wParam,lParam) else Result := DefMDIChildProc(hwndMe,uMsg,wParam,lParam); end;覆盖B的CreateParams: procedure TB.CreateParams(var Params: TCreateParams); begin inherited; Params.WindowClass.lpWindowProc := @ MyMDIChildProc; end; 这样就可以了。 由于我是在网吧上网,上面的代码可能有写错的地方,敬请原谅。
TForm1.Create(TComponent* Owner);
begin
HorzScrollBar.Visible := false;
VertScrollBar.Visible := false;
Form2 := TForm2.Create(this);
Form2.Parent := this;
Form2.Visible := true;
end;
setparent(form2.handle,form1.handle);
B.FormStyle:=fsMDIChild
在B的单元写一个函数(注意,不是B的成员函数):
function MyMDIChildProc(hwndMe:HWND;uMsg,wParam,lParam:DWORD):Integer;sdtcall;
begin
if (uMsg = WM_SIZE) or (uMsg = WM_MOVE) then
Result := DefWindowProc(hwndMe,uMsg,wParam,lParam)
else
Result := DefMDIChildProc(hwndMe,uMsg,wParam,lParam);
end;覆盖B的CreateParams:
procedure TB.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WindowClass.lpWindowProc := @ MyMDIChildProc;
end;
这样就可以了。
由于我是在网吧上网,上面的代码可能有写错的地方,敬请原谅。
procedure TB.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WindowClass.lpfnWndProc:= @ MyMDIChildProc;
end;
form2:tform;
begin
form2:=tform.create(application);
form2.parent:=form1;
form2.visible:=true;
end;