想form没有最大化按钮也不允许拖动改变窗口大小怎么做?

johnhawke 2002-09-04 06:35:07
我是新手,做的新建的form都是自带最小化,最大化,关闭,这三个按钮的
可是我并不希望别人能改变这个窗口的大小,更加不允许最大化
我的窗口非常小,甚至连变灰的最大化键都不希望看到
可是总是无法实现,请教高手
...全文
566 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnhawke 2002-09-06
  • 打赏
  • 举报
回复
hjd_cw
你的程序把那三个按钮都屏蔽了,可是全部都看得见,而且实现非常麻烦
hjd_cw 2002-09-04
  • 打赏
  • 举报
回复
我这个方法最管用了:
=============================
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure SubClassWndProc(var Message: TMessage);
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.DFM}
procedure Tform1.SubClassWndProc(var Message: TMessage);

begin
if (message.Msg = WM_NCHITTEST) then
MESSAGE.Result := 1

else
form1.WndProc(Message);

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
WindowProc := SubClassWndProc;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
application.Terminate;
end;

end.
longlongge 2002-09-04
  • 打赏
  • 举报
回复
bordericons:=[]; //去掉最小化,最大化,关闭
borderstyle:=bsSingle; //别人不能改变这个窗口的
liuer 2002-09-04
  • 打赏
  • 举报
回复
这么简单,直接在form对象设置浮动窗里设置就可以了
johnhawke 2002-09-04
  • 打赏
  • 举报
回复
这样就又回到前面的问题了,如果Form1.BorderIcons:=[biminimize];
就没有那个用来关闭窗口的叉叉按钮了呀:(
blazingfire 2002-09-04
  • 打赏
  • 举报
回复
Form1.BorderStyle:=bsSingle;
Form1.BorderIcons:=[biminimize];
都是有属性窗口设定的。
johnhawke 2002-09-04
  • 打赏
  • 举报
回复
form1.bordericon:=[biSystemMenu,biMinimize];
后,还是有个灰色的最大化按钮阿,希望连这个也没有
z_hongbao 2002-09-04
  • 打赏
  • 举报
回复
改變Form的窗躰函數
ly_liuyang 2002-09-04
  • 打赏
  • 举报
回复
没有最大化按钮form1.bordericon:=[biSystemMenu,biMinimize];
不允许拖动改变窗口大小form1.borderstyle:=bsSingle;
l_xiaofeng 2002-09-04
  • 打赏
  • 举报
回复
我说个方法,不过不一定好,把FORM的borderstyle设置一下.
然后画个关闭,也是个办法.
wzrlover 2002-09-04
  • 打赏
  • 举报
回复
Oh,错了 :) borderStyle:=bsnone;
dongxsoft 2002-09-04
  • 打赏
  • 举报
回复
设置Form.bordericons
并borderstyle:=bsSingle;
dongxsoft 2002-09-04
  • 打赏
  • 举报
回复
设置Form.bordericons
并borderstyle:=bsSingle;
johnhawke 2002-09-04
  • 打赏
  • 举报
回复
去掉标题栏不是连退出那个叉叉按钮都没有了?
我还是要最小化和退出按钮的呀
而且我也不晓得怎么去掉标题栏:(
请指教
100percent 2002-09-04
  • 打赏
  • 举报
回复
在form的属性中设置如下:
bordericons:=[]; //去掉最小化,最大化,关闭
borderstyle:=bsSingle; //别人不能改变这个窗口的大小
wzrlover 2002-09-04
  • 打赏
  • 举报
回复
设置窗体属性formStyle:=fsnone;
scarletg 2002-09-04
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
bwinstat:boolean;
procedure WMwindowposchanging(var msg:twmwindowposchanging);
message wm_windowposchanging;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
const
uflag = SWP_NOMOVE ;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
bwinstat:=true;
end;
procedure TForm1.WMwindowposchanging(var msg:twmwindowposchanging);
begin
inherited;
if bwinstat then
msg.windowpos^.flags:=msg.windowpos.flags or SWP_NOMOVE;
end;

end.
以上是固定的
不要最大化按钮,去掉标题栏就可以了

5,388

社区成员

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

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