如何使窗体大小超出屏幕尺寸? 试了 SetWindowPos,不行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先來個 screen.height和 screen.width得到屏幕高度和寬度,然后再修改form的width和height屬性,使其大于屏幕就 ok 试了试设置width和height很大不可以。不过可以略微超出屏幕大小。 不知道楼主的需求背景是什么应该使用form里的scrollbox,它是可以很大的 楼上说的方法通通不行.Anyone has good idea??? 要道出问题根源啊1.你想在比桌面还大的空间上画图?----- 请在内存里创建BMP在上面画,然后Copy到显示视图来2.你想输出大窗口投射到某些超大分辩率的设备上(如大型LED或超长型LED)?---- 这类投射是需要显卡支持的你显卡不支持这么大范围就只能分窗口投射,但看到的效果是连接起来的 扩大一个窗体,可以显示更多内容?桌面就这么大,窗体更大有什么意义——莫非想使用Tscrollbox的效果? 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. npkaida:SetBounds不是WIN API,如果我想设置第3方窗体大尺寸,怎么办? 实际上可以直接设置窗体高度和宽度,不用 SetBounds:procedure TForm1.Button1Click(Sender: TObject);begin //SetBounds(0,0,3000,1000); Width:=3000; Height:=1000;end;但是要设置第三方软件窗体的超大尺寸可能不行, 因为如何给 第三方软件的窗体 增加 WM_GETMINMAXINFO 消息重载是个问题。 我HOOK了WH_GETMESSAGE,然后判断WM_GETMINMAXINFO消息,并改变了ptMaxSize.X的值,仍然不行,何解? 请你试了以后再说,你所说的根本不行。用钩子可以重写 WM_GETMINMAXINFO,但这样多出一个DLL,似乎有些不爽。 设置TForm的Constraints属性,将属性的MaxHeight和MaxWidth改为超出你要的分辨率的范围就行了。例如你想要一个700*1400的分辨率的窗口那么设置MaxHeight>700,Maxwidth>1400 如何查看二维码用的是什么标准的二维码啊? ****已知Memo中的确定行,在Edit1中显示这一行中的确定列的字符值**** 在异步运行时候,操作不能不执行,怎么搞啊! 我的大难题! 怎么发送一个byte类型的数组????通过,clientsocket... 怎样用SQL语句对SQLServer数据库进行备份和恢复?急急急急! 菜鸟的问题 将ADOQUERY查询出的数据项导入一个临时表时遇到的问题 d idpOP31没有办法删除服务器的邮件 ffmpeg新版本的Delphi版本最新函数声明及相关内容那里有 AutoUpgrader组件自动更新问题???
应该使用form里的scrollbox,它是可以很大的
Anyone has good idea???
桌面就这么大,窗体更大有什么意义——莫非想使用Tscrollbox的效果?
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.
SetBounds不是WIN API,如果我想设置第3方窗体大尺寸,怎么办?
begin
//SetBounds(0,0,3000,1000);
Width:=3000;
Height:=1000;
end;但是要设置第三方软件窗体的超大尺寸可能不行, 因为如何给 第三方软件的窗体
增加 WM_GETMINMAXINFO 消息重载是个问题。
请你试了以后再说,你所说的根本不行。
用钩子可以重写 WM_GETMINMAXINFO,但这样多出一个DLL,似乎有些不爽。
例如你想要一个700*1400的分辨率的窗口那么设置MaxHeight>700,Maxwidth>1400