zoukankan      html  css  js  c++  java
  • 主窗口最小化,其他非主窗口也一起最小化

    主窗口最小化,其他非主窗口也一起最小化

    楼主: 按照常理,程序的主窗口一旦最小化,该程序的其他所有非主窗口都要一起最小化。
    特殊情况下,怎么实现非主窗口不受主窗口最小化的影响:即主窗口最小化了,其他非主窗口依然没有最小化。

    ----------------------------------------------
    { 注意:在 OnFormCreate 中调用有效! }
    Winapi.Windows.SetParent(Self.Handle, FindWindowEx(FindWindow('Progman', nil),
    0, 'shelldll_defview', nil));

    可是,刚刚发现,有的时候,这个方法会失效。
    明明设置非主窗口的父窗口为桌面了,并且在大多数情况下是可以成功,
    但是为什么少数情况下失败呢 ?

    继续测试。
    ----------------------------------------------

    用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.
    ----------------------------------------------

    5楼: 如果是 Win7 开了 AERO,并且窗口是半透明的话,要用SetWindowLong,不要用SetParent
    ----------------------------------------------

    http://bbs.2ccc.com/topic.asp?topicid=515993

  • 相关阅读:
    面试常见问题汇总
    java static变量及函数
    java自定义注解及其信息提取
    testNG 注释实例
    让我欲罢不能的node.js
    利用html 5 websocket做个山寨版web聊天室(手写C#服务器)
    html5 Web Workers
    html5 postMessage解决跨域、跨窗口消息传递
    C# socket编程实践——支持广播的简单socket服务器
    简单理解Socket
  • 原文地址:https://www.cnblogs.com/findumars/p/5913041.html
Copyright © 2011-2022 走看看