把窗口设置成无标题栏的,然后再自己做一个标题栏和关闭按钮.
个人觉得用 panel 就能做出很好的效果

解决方案 »

  1.   

    呵呵,截获windows消息,当点击标题栏时,给windows消息点击的是内容区信息,很多书上都有这样的小例子
      

  2.   

    sigh,知道有这样的小程序,但是因为东西都做好了
    所以现在如果编程就很麻烦了,要不然,当初可以编号一个做继承就可以了
      

  3.   

    设定form属性none;
    from position 屏幕中心
      

  4.   

    没有标题栏,可以用panel来做一个
    position设为screen center. 即可实现
      

  5.   

    form: none;
    position: ScreenCenter;
    象Delphi的启动窗口。
    再想个办法可以关闭就行了。
      

  6.   

    我用了twmwindowposchanging来做,
    但是糟糕的是,我只能用固定x,y,来确定在屏幕中间了
    怎么样才能确定在屏幕中间呢?
    因为用了msg后,原来摄制的screencenter的属性就不认了
      

  7.   

    屏蔽 WM_HITTEST消息,就可以了!
    =======================================
    unit Unit1;interfaceuses
      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.
      

  8.   

    unit Unit1;interfaceuses
      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;
       msg.WindowPos.x:=188;
       msg.WindowPos.y:=122;
      if bwinstat then
       msg.windowpos^.flags:=msg.windowpos.flags or SWP_NOMOVE;
      end;end.
    我用的是一上的程序
    后果就是msg.WindowPos.x:=188;
       msg.WindowPos.y:=122;
    这两个值不知道怎么取好,就是保证在屏幕中间
    hjd_cw() 你的程序只能固定死了,无法最大最小,也无法关闭阿
      

  9.   

    application.creatform(TfrmTest,frmTest);
    frmTest.position := poScreenCenter;
    frmTest.showmodal;