怎么让弹出的窗口 显示在最前 但是又不覆盖任务栏? 怎么让弹出的窗口 显示在最前 但是又不覆盖任务栏?让窗口在最前有两种方面 一是在窗口属性里面设置fsstayontop 还有是用api 里面的setwindowpos里面的topmost 但是这样的窗口最前 会覆盖 任务栏 有没有办法使用弹出窗口始终在最前 但又不覆盖任务栏呢? 效果如果emule的弹出窗口一样能手出招 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure WMGetMinMaxInfo(var mes:TWMGetMinMaxInfo);message WM_GetMinMaxInfo;procedure TfrmMain.WMGetMinMaxInfo(var mes: TWMGetMinMaxInfo);begin mes.MinMaxInfo.ptMaxPosition.X := 0; mes.MinMaxInfo.ptMaxPosition.Y := 0; mes.MinMaxInfo.ptMaxSize.X := Screen.Width; mes.MinMaxInfo.ptMaxSize.Y := Screen.WorkAreaHeight; mes.Result := 0; inherited;end;截获最大化消息并在里面设置窗口的位置和大小. wintergoes ,倒是一个好办法,不过,我也还有一个方法:procedure Createparams(var params: TCreateParams);override;procedure TForm1.Createparams(var params: TCreateParams);begin inherited CreateParams(Params); with params do begin Style:=WS_POPUP; ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE; WndParent := GetWindow(FindWindow('Progman', nil), GW_CHILD); end;end;procedure TForm1.FormCreate(Sender: TObject);begin SystemParametersInfo(SPI_GETWORKAREA, 0, @Rect, 0); Rect.Top := 100; SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0); Left := 0; Top := 0; Height := 100; Width := Screen.Width; FormStyle := fsStayOnTop;end;procedure TForm1.FormDestroy(Sender: TObject);beginRect.Top := 0; SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);end;这个方法,我试了,窗体绝对会在最前面.效果比较好. 用vfw 写视频会议 ,但是画图 画不出来 汇总,排序问题(急) webbrowser1如何通过查找网页中的特定字符串获取坐标? 编译错误:关于_wsprintfA 函数 浮动工具栏 关闭后 或双击后 如何还原到原来的位置(窗口的顶部分) ADO + SQL Server数据库的数据存取问题.在线等... 为什么没有ComboBox1.AddObject方法? 问个小问题!~在线求结果 如何:在DELPHI能否怎样编写定时开机程序,怎么做,知道者帮忙,必有重谢 在ISAPI下用ADO方式存取数据库有何经验? 请原谅我用这样的问题影响你挑战难题的兴致! 如何编程以指定用户身份运行指定程序呢?
begin
mes.MinMaxInfo.ptMaxPosition.X := 0;
mes.MinMaxInfo.ptMaxPosition.Y := 0;
mes.MinMaxInfo.ptMaxSize.X := Screen.Width;
mes.MinMaxInfo.ptMaxSize.Y := Screen.WorkAreaHeight;
mes.Result := 0;
inherited;
end;截获最大化消息并在里面设置窗口的位置和大小.
procedure Createparams(var params: TCreateParams);override;
procedure TForm1.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
WndParent := GetWindow(FindWindow('Progman', nil), GW_CHILD);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @Rect, 0);
Rect.Top := 100;
SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);
Left := 0;
Top := 0;
Height := 100;
Width := Screen.Width;
FormStyle := fsStayOnTop;end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Rect.Top := 0;
SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);end;
这个方法,我试了,窗体绝对会在最前面.效果比较好.