在Delphi5中怎样将Form的Caption Bar去掉??????请各位不吝赐教!

linkie 2000-05-29 09:34:00
如果要将MDIChildren的标题栏(窗体上的蓝色的,有最小化、最大化和关闭按钮的那条Bar)去掉,同时要保证去掉后该窗体的上边框仍然是有立体感的,也就是好象只是将那条Bar的蓝色部分去掉一样,我该怎么做呢?另外,如果MDIChildren的Client区中放置有Align属性设为AlClient的控件,那么去掉Caption Bar后将怎样使用户依然能任意移动窗体呢?
以上两个问题,谁有高见,请您指点迷津!
谢谢!
...全文
327 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
skt642 2001-05-31
  • 打赏
  • 举报
回复
10503关注!
kylix2001 2001-05-31
  • 打赏
  • 举报
回复
这样以后还能不能改变窗体大小?

zxghl 2000-06-16
  • 打赏
  • 举报
回复
Sachow说的对。简便易行。
要移动窗体时,拦截主Panel的MouseMove事件,参照yeah的方法。
linkie 2000-06-16
  • 打赏
  • 举报
回复
我的问题已经由Joyuce解决了!
joyuce 2000-06-16
  • 打赏
  • 举报
回复
FormCreate:
SetWindowLong(Handle,GWL_STYLE, GetWindowLong(Handle,GWL_STYLE) AND NOT WS_CAPTION);
ClientHeight := Height;
保证去掉后该窗体的上边框仍然是有立体感的,好象只是将那条Bar的蓝色部分去掉一样.
Sachow 2000-06-06
  • 打赏
  • 举报
回复
把窗体的BorderStyle设为bsNone,在窗体上放一个Panel,把它的Align属性设为
alClient,BorderWidth设为2,再把其它如按钮、输入框等控件放在这个Panel上就
行了。想要边框的立体感更好一些,只需要按这个方法多套几个Panel就行了。
supershan 2000-06-06
  • 打赏
  • 举报
回复
关注...
pcly 2000-06-05
  • 打赏
  • 举报
回复
API 的SendMessage()函数 发送窗体移动消息
sundyl 2000-06-02
  • 打赏
  • 举报
回复
procedure NPP(Var MESSAGE:TWMNCPAINT);message WM_NCPAINT;
处理WM_NCPaint就可以,别忘记返回 Message.Result := 0
在这里你需要自己绘制标题栏,这个我就不再行了。
linkie 2000-05-30
  • 打赏
  • 举报
回复
Yeah:
你好!阁下您给的解答我看过了,不过我知道您的解答是不能奏效的。我想您可以自己
动手试试的!你可能尚未看清楚我的问题。即便这样,我也要谢谢你的神速解答。
Thank you!
yeah 2000-05-29
  • 打赏
  • 举报
回复
使用以下方法可以达到你的要求:
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure MoveCaption(Var MESSAGE:TWMNCHITTEST);Message WM_NCHITTEST;

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
With Params do
Style:=Style or WS_DLGFRAME;
end;

procedure TForm1.MoveCaption(var MESSAGE:TWMNCHITTEST);
begin
inherited;
if Message.Result=HTCLIENT then Message.Result:=HTCAPTION;
end;

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧