我的想法是:1。窗体一直是最大化,不能最小化到任务栏。
               2。窗体不能拖动
   我的处理方式:
   我把BorderIcons的biMinimize和biMaximize设置为false,然后初始化窗体最大化,可当我双击窗体的标题栏,窗体大小依然可改变。
   然后我把窗体设置为dialog模式,可上面的菜单不可用,且我在任务栏上右击已然可最小化。
   我处理消息WM_GETMINMAXINFO可以控制窗体大小,但是依然在任务栏上右击可最小化。
  
   会的大虾帮我看看,谢谢了~!

解决方案 »

  1.   

    窗体大小不能改变,属性BorderStyle:bsSingle
    窗体最大化,属性WindowState:wsMaximized
      

  2.   

    把BorderIcons的biMinimize和biMaximize设置为false  ;onshow或oncreate里 form.WindowState:=wsMaximized;form align 属性 alClient;最后,你的程序在任务上右击都不要最小化,那就是任务拦都没什么意义了,要关闭?.
    那么  Setwindowlong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
      

  3.   

    有吗, 都是alcient了,就算小也恢复了啊
      

  4.   

    捕捉消息自己处理就可以了 
    procedure WMPosChange(var Message: TWMWINDOWPOSCHANGING);message WM_WINDOWPOSCHANGING; 
    procedure TMainForm.WMPosChange(var Message: TWMWINDOWPOSCHANGING);
    begin
      PWindowPos(TMessage(Message).lParam).Flags :=PWindowPos(TMessage(Message).lParam).Flags or SWP_NOMOVE or SWP_NOSIZE;
    end;
      

  5.   

    窗体刚开始就设置为最大化
    把BorderIcons的biMinimize和biMaximize设置为false  ;onshow或oncreate里 form.WindowState:=wsMaximized;form align 属性 alClient;
      

  6.   

    procedure WMPosChange(var Message: TWMWINDOWPOSCHANGING);message WM_WINDOWPOSCHANGING; 
    procedure TMainForm.WMPosChange(var Message: TWMWINDOWPOSCHANGING);
    begin
      PWindowPos(TMessage(Message).lParam).Flags :=PWindowPos(TMessage(Message).lParam).Flags or SWP_NOMOVE or SWP_NOSIZE;
    end;
    -----------------------------------------------------------
    這樣不行嗎?
      

  7.   

    设置FORM三个属性即可
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    form1.Align:=alClient;
    form1.WindowState:=wsMaximized;
    form1.BorderStyle:=bsDialog;
    end;
      

  8.   

    如果想看到菜单就这样
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    form1.Align:=alClient;
    form1.WindowState:=wsMaximized;
    form1.BorderStyle:=bsSizeable;
    form1.BorderIcons:=[biSystemMenu];
    end;