我有一个程序,希望在窗口最大化时限定窗口的位置和大小。比如窗口最大化后的Top = 100;在OnCanResize和OnResize中加入类似的代码,窗口只会先最大化到满屏再让Top = 100,这样闪动的非常利害。有没有办法让窗口最大化时直接到达Top = 100的位置,就好象屏幕的上边缘就在Top = 100处一样?
解决方案 »
- AnsiString与AnsiChar 如何转换?
- RAD Studio 2007多语言版下载
- 走过路过的兄弟姐妹们都进来帮忙一下啊.......(十分火急,在线等)
- 那里有可以绑定两个以上字段得combobox控件,就像asp.net里面dropdownlist控件一样
- 有关日期输入我用了DateTimePicker控件,如何使执行的时候,它显示的是当前的日期?
- 请问怎么分割显示png图片呢?
- 急!关于多次分组在一个报表里面!
- sql server 2000登录问题(急用啊!)
- WPS2000文档的排版自动判分程序,谁会?或者说WPS2000的文档如何能够读出来它的内容(每一段,文字格式等信息)?
- 怎样把不同的控件作为同一个参数在函数中调用。
- 一个关于MDI窗体中的Panel的问题。急!在线等!
- 如何设置一个自动编号字段作为索引字段,然后查找?
procedure WMGetMinMaxInfo( var Message:TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;
procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
begin
with Message.MinMaxInfo^ do
begin
ptMaxSize.X := 1000; {最大化时宽度}
ptMaxSize.Y := 1000; {最大化时高度}
ptMaxPosition.X :=10; {最大化时左上角横坐标}
ptMaxPosition.Y :=10; {最大化时左上角纵坐标}
end;
Message.Result := 0; {告诉Windows你改变了 minmaxinfo}
inherited;
end;
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
case Message.CmdType of
61488 :
begin
left := 0;
Top := 100;
width := screen.Width;
height := screen.Height - 100;
end;
else inherited;
end;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure WMGETMINMAXINFO(var MSG:TWMGETMINMAXINFO); message WM_GETMINMAXINFO;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TYPE
{struct pointed to by WM_GETMINMAXINFO IParam}//内部信息结构
PMinMaxInfo=^MinMaxInfo;
{$externalsym tagminmaxinfo }
tagminmaxinfo=packed record
ptreserved:Tpoint;
ptmaxsize:Tpoint;
ptmaxposition:Tpoint;
ptmintracksize:Tpoint;
ptmaxtracksize:Tpoint;
end;
var
Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.WMGETMINMAXINFO(var MSG:TWMGETMINMAXINFO);
begin
inherited;
with msg.MinMaxInfo^ do
begin
ptmintracksize.X:=form1.Width;
ptmaxtracksize.X:=form1.Width;
ptmintracksize.Y:=form1.Height;
ptmaxtracksize.Y:=form1.Height;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
beginend;end.