我有很多通过COM在XE2 DLL中启动的表单。调用者是VC 6应用程序。
每个打开的表单都显示为TaskManager中的应用程序,我不希望这样,这些窗口只是对话框,而不是应用程序。
我可以使用一个设置来不显示这些窗口吗?
我正在使用C ++ Builder XE2,但Delphi解决方案可能对我有用。
答案 0 :(得分:3)
TaskManager显示顶级无主窗口。您的DLL窗口没有指定任何所有者窗口。这就是他们出现的原因。
答案 1 :(得分:1)
将TForm.BorderStyle设置为bsToolWindow或bsSizeToolWin。 这将导致Win32窗口样式中包含WS_EX_TOOLWINDOW。
如果您覆盖CreateParams方法,也可以手动设置。
我还认为要在CreateParams中设置WS_POPUPWINDOW,它的描述建议它。
最后但并非最不重要的是,我尝试从C ++应用程序传递main window handle,然后将其作为parent hwnd分配给对话框窗口,如果这些窗口不是模态的。