|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2016/9/25 16:28:19 |
标题: |
主窗口最小化,其他非主窗口也一起最小化。 |
浏览:1264 |
|
加入我的收藏 |
楼主: |
按照常理,程序的主窗口一旦最小化,该程序的其他所有非主窗口都要一起最小化。 特殊情况下,怎么实现非主窗口不受主窗口最小化的影响:即主窗口最小化了,其他非主窗口依然没有最小化。
----------------------------------------------
- |
作者: |
|
2016/9/25 16:58:29 |
1楼: |
把其它窗口的Parent改成Desktop即可。这其实是老生常谈的问题了,在网上多搜搜即可。
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
|
2016/9/25 17:13:29 |
2楼: |
确实管用。
{ 注意:在 OnFormCreate 中调用有效! } Winapi.Windows.SetParent(Self.Handle, FindWindowEx(FindWindow('Progman', nil), 0, 'shelldll_defview', nil));
----------------------------------------------
-
|
作者: |
|
2016/9/26 23:11:01 |
3楼: |
可是,刚刚发现,有的时候,这个方法会失效。 明明设置非主窗口的父窗口为桌面了,并且在大多数情况下是可以成功, 但是为什么少数情况下失败呢 ?
继续测试。
----------------------------------------------
-
|
作者: |
|
2016/9/27 9:09:11 |
4楼: |
用CreateParams吧,例子如下: unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm2 = class(TForm) private { Private declarations } protected procedure CreateParams(var Params: TCreateParams); override; public { Public declarations } end;
var Form2: TForm2;
implementation
{$R *.dfm}
{ TForm2 }
procedure TForm2.CreateParams(var Params: TCreateParams); begin inherited;
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; Params.WndParent := GetDesktopWindow; end;
end.
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
|
作者: |
|
2016/9/27 10:58:30 |
5楼: |
如果是 Win7 开了 AERO,并且窗口是半透明的话,要用SetWindowLong,不要用SetParent
----------------------------------------------
http://mcool.appinn.me/
|
作者: |
|
2016/9/27 14:51:12 |
6楼: |
感谢二位提供思路。
----------------------------------------------
-
|
作者: |
|
2016/9/28 6:35:46 |
7楼: |
CreateParams 的方式,测试可以使用。但是带来了弊端:就是同一个程序,会在任务栏上,同时显示主窗口和非主窗口(已通过CreateParams方式修改父窗口为 Desktop)的两个窗口缩略图叠加一起。非常别扭。
所以,暂时使用了 SetWindowLong 方式,不用 SetParent 方式。@iamdream
----------------------------------------------
-
|
作者: |
|
2016/12/23 10:28:25 |
8楼: |
在win8/10下失效了,各位有什么好方法?@郝亚平 @孤独骑士 @iamdream
----------------------------------------------
http://mcool.appinn.me/
|
作者: |
|
2016/12/23 18:08:44 |
9楼: |
搞错,只是在win10 10240版本失效,其他版本都没问题
----------------------------------------------
http://mcool.appinn.me/
|
|