代码之家  ›  专栏  ›  技术社区  ›  Gregor Brandt

在DLL中打开的窗体显示在任务管理器中,如何隐藏?

  •  1
  • Gregor Brandt  · 技术社区  · 13 年前

    我有许多表单是通过COM在XE2DLL中启动的。调用方是一个VC 6应用程序。

    打开的每个窗体都显示为TaskManager中的应用程序,我不希望这样,这些窗口只是对话框,而不是应用程序。

    有没有一个设置可以让我不显示这些窗口?

    我使用的是C++Builder XE2,但Delphi解决方案可能对我有用。

    2 回复  |  直到 13 年前
        1
  •  3
  •   Remy Lebeau    13 年前

    TaskManager显示顶级无主窗口。您的DLL窗口没有指定任何所有者窗口。这就是它们出现的原因。

        2
  •  1
  •   Arioch 'The    13 年前

    将TForm.BorderStyle设置为bsToolWindow或bsSizeToolWin。 那会导致 WS_EX_TOOLWINDOW 包含在Win32窗口样式中。

    或者,如果覆盖,也可以手动设置 CreateParams 方法

    我也认为 WS_POPUPWINDOW 是在CreateParams中设置的,它的描述表明了这一点。

    最后但同样重要的是,我会努力通过 main window handle 从C++应用程序,然后将其分配为 parent hwnd 到您的对话框窗口,如果这些窗口不是模态的。

    推荐文章