关于MDI窗口的问题!(谢谢)(100分)

  • 主题发起人 主题发起人 licby
  • 开始时间 开始时间
L

licby

Unregistered / Unconfirmed
GUEST, unregistred user!
请问一下各位高手:
1、如何消除MDI父窗口的滚动条(只要是子窗口超过父窗口的边界,那讨厌的滚动条
就出现了,反Autoscroll改为False也不行。 )
2、如何消除MDI子窗口的标题栏(一般窗口只要改属性就行了,但MDI子窗口好像不一
样。)
 
我看你没有必要用MDIform,直接用Panel再加上可以自由拖动的功能不就OK了
 
To 郭镇松:
如何为Panel再加上可以自由拖动的功能?
 
代码如下:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Panel1.Perform(WM_SYSCOMMAND, $F017, 0);
end;
 
谢谢郭大侠!!!
 
再请教郭大侠:如何为该panel设置停靠功能及大小调整功能?愿出200¥,不成敬意。
 
$F001 是向左改变大小。
$F002 是向右改变大小。
$F003 是向上改变大小。
......自己试试吧!
停靠功能是什么意思?不懂。
 
2、消除标题栏好办,有两种方法——
一、在子窗口的OnCreate事件里:
SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);
Height := Height + 1;//调整一下大小使它重绘
二、重载子窗口的CreateParams方法:
在子窗口类的定义中加上:
protected
procedure CreateParams(var Params: TCreateParams); override;
在子窗口(如TMDIChild)的实现部分:
procedure TMDIChild.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do Style := Style and not WS_CAPTION;
end;
 
停靠就是DOCK
 
设置
dragkind:=dkDock;
DragMode:=dmAutomatic;
再加一个panel,其docksite:=true;其它默认即可
 
多人接受答案了。
 
后退
顶部