如何将程序主界面最大化后使其在任务栏的上方?????

mrlining 2001-06-08 10:58:00
如何将程序主界面最大化后使其在任务栏的上方,而不是任务栏将程序的下方盖住?????????
...全文
202 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
musicwind 2001-07-03
  • 打赏
  • 举报
回复
TFrmWorkAround = Class(TForm)
....
procedure WMGETMINMAXINFO( var Message: TWMGetMinMaxInfo ); Message WM_GETMINMAXINFO;
end;

function mscGetWorkArea( var rt: TRect ): Boolean;
begin
result := SystemParametersInfo( SPI_GETWORKAREA, 0, @rt, 0 );
end;

procedure TFrmWorkAround.WMGETMINMAXINFO(var Message: TWMGetMinMaxInfo);
var
rt: TRect;
begin
if not Config.ConstrainedMaxSize
or ( Top < ( Application.MainForm.Top + Application.MainForm.Height ) ) then
begin
inherited;
Exit;
end;
if mscGetWorkArea( rt ) then
begin
Message.MinMaxInfo.ptMaxSize.x := rt.Right - rt.Left + 10;
Message.MinMaxInfo.ptMaxSize.y := rt.Bottom - rt.Top
- Application.MainForm.Top
- Application.MainForm.Height + 10;
Message.MinMaxInfo.ptMaxPosition.x := rt.Left - 5;
Message.MinMaxInfo.ptMaxPosition.y := rt.Top - 5
+ Application.MainForm.Top
+ Application.MainForm.Height;
end
else
begin
Message.MinMaxInfo.ptMaxPosition.x := Screen.DesktopLeft;
Message.MinMaxInfo.ptMaxPosition.y := Screen.DesktopTop
+ Application.MainForm.Top
+ Application.MainForm.Height
- 5;
Message.MinMaxInfo.PtMaxSize.y := Screen.DesktopHeight
- ( Message.MinMaxInfo.PtMaxSize.y - Screen.DesktopHeight )
- Application.MainForm.Top
- Application.MainForm.Height
- 13;
end;
end;


火鸟李国平 2001-07-03
  • 打赏
  • 举报
回复
SetWindowPos(Form.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE),总在最上
cczmm 2001-07-03
  • 打赏
  • 举报
回复
用SetWindowPos()吧,放在初始化里面!
mrlining 2001-06-08
  • 打赏
  • 举报
回复
我所说的并不是谁盖住谁,而是程序界面在任务栏的上方显示,应向两个上下并排的窗体一样。
mrlining 2001-06-08
  • 打赏
  • 举报
回复
我用的是win2000server
Asus 2001-06-08
  • 打赏
  • 举报
回复
我机器上还是没盖住(我用的是WINME)
码狂 2001-06-08
  • 打赏
  • 举报
回复
将窗体的FormStyle属性设成fsStayOnTop。
mrlining 2001-06-08
  • 打赏
  • 举报
回复
当然有,不信你自已做个程序试试,将windowstate设为wsMaximized,将任务栏设为不自动隐藏,将总在前面选中。
Asus 2001-06-08
  • 打赏
  • 举报
回复
任务栏有将程序的下方盖住吗?
mrlining 2001-06-08
  • 打赏
  • 举报
回复
能说的具体点吗??
c_hk 2001-06-08
  • 打赏
  • 举报
回复
??
Kingron 2001-06-08
  • 打赏
  • 举报
回复
赫赫,拦截WM_GETMINMAXINFO就可以乐.修改MinMaxInfo的结构,改成屏幕的大小-任务栏的大小就可以乐.

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧