试了 SetWindowPos,不行

解决方案 »

  1.   

    先來個  screen.height和 screen.width得到屏幕高度和寬度,然后再修改form的width和height屬性,使其大于屏幕就 ok
      

  2.   

    试了试设置width和height很大不可以。不过可以略微超出屏幕大小。
      

  3.   

    不知道楼主的需求背景是什么
    应该使用form里的scrollbox,它是可以很大的
      

  4.   

    楼上说的方法通通不行.
    Anyone has good idea???
      

  5.   

    要道出问题根源啊1.你想在比桌面还大的空间上画图?----- 请在内存里创建BMP在上面画,然后Copy到显示视图来2.你想输出大窗口投射到某些超大分辩率的设备上(如大型LED或超长型LED)?---- 这类投射是需要显卡支持的你显卡不支持这么大范围就只能分窗口投射,但看到的效果是连接起来的
      

  6.   

    扩大一个窗体,可以显示更多内容?
    桌面就这么大,窗体更大有什么意义——莫非想使用Tscrollbox的效果?
      

  7.   


    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        Procedure WMGetMinMaxInfo(Var msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.WMGetMinMaxInfo(var msg: TWMGetMinMaxInfo);
    begin
      inherited;
      With msg.MinMaxInfo^.ptMaxTrackSize Do Begin
        X := 3000;  //允许最宽值
        Y := 2000;  //允许最高值
      End;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SetBounds(0,0,3000,1000);
    end;end.
     
      

  8.   

    npkaida:
    SetBounds不是WIN API,如果我想设置第3方窗体大尺寸,怎么办?
      

  9.   

    实际上可以直接设置窗体高度和宽度,不用 SetBounds:procedure TForm1.Button1Click(Sender: TObject);
    begin
      //SetBounds(0,0,3000,1000);
      Width:=3000;
      Height:=1000;
    end;但是要设置第三方软件窗体的超大尺寸可能不行, 因为如何给 第三方软件的窗体 
    增加 WM_GETMINMAXINFO 消息重载是个问题。
      

  10.   

    我HOOK了WH_GETMESSAGE,然后判断WM_GETMINMAXINFO消息,并改变了ptMaxSize.X的值,仍然不行,何解?
      

  11.   


    请你试了以后再说,你所说的根本不行。
    用钩子可以重写 WM_GETMINMAXINFO,但这样多出一个DLL,似乎有些不爽。
      

  12.   

    设置TForm的Constraints属性,将属性的MaxHeight和MaxWidth改为超出你要的分辨率的范围就行了。
    例如你想要一个700*1400的分辨率的窗口那么设置MaxHeight>700,Maxwidth>1400