如何在 Delphi 中把 Form 控制成不能放大/缩小/移动/关闭?(100分)

  • 主题发起人 主题发起人 pq
  • 开始时间 开始时间
BORDERSTYLE:=BSNONE:
 
如何在 Delphi 中把 Form 控制成不能放大/缩小/移动/关闭?1、把 Form 的 BorderIcons 下的几个子属性值全改为 False;2、修改 Form 的 BorderStyle 的值为bsSingle ;3、为了让窗口不能移动,可以自已拦下 WM_NCHITTEST 消息, 对该消息的处理为:一概回应鼠标点在窗口的 Client 区域, 相信这个视窗就呆呆的不会动了。
详情可以查一下 Win32API Help 的 CreateWindow() 与 WM_NCHITTEST 的说明。
下面是一个例子, 请参考看看:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms, Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure WMNCHitTest(var Msg: TMessage);
message WM_NCHITTEST;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
// 不可少, 因为已经没有其他方法能关闭此窗口了
end;
procedure TForm1.WMNCHitTest(var Msg: TMessage);
begin
inherited;
// 这样,移动就不可能了...
Msg.Result := HTCLIENT;
end;
end.
 
borderstyle := bsNone;
前卫看来非得不可呀。
 
沈前卫 is right
 
呵呵,前卫的例子是 delphi yesite 的资料包里的吧,我现在去不了,那里还有
更新的资料包下载吗?
 
不过上面还有可以使用Alt+F4关闭窗口,不过可以使用OnCloseQuery来解决.
HeHe....分分快到手乐.... {B-)
 
接受答案了.
 
后退
顶部