【发布时间】:2010-11-15 17:02:53
【问题描述】:
当我在 Windows 7 上安装虚拟桌面管理器并切换到不同的虚拟桌面时,所有当前窗口都会消失,也会从“开始”菜单中消失。
我想以类似的方式隐藏某些特定应用程序的窗口,但不是全部。如何隐藏这样的窗口?
特别是,我需要隐藏 VirtualBox 无缝模式窗口,所以我不确定最小化窗口是否有效。但是,在使用虚拟桌面管理器时它会消失。
【问题讨论】:
当我在 Windows 7 上安装虚拟桌面管理器并切换到不同的虚拟桌面时,所有当前窗口都会消失,也会从“开始”菜单中消失。
我想以类似的方式隐藏某些特定应用程序的窗口,但不是全部。如何隐藏这样的窗口?
特别是,我需要隐藏 VirtualBox 无缝模式窗口,所以我不确定最小化窗口是否有效。但是,在使用虚拟桌面管理器时它会消失。
【问题讨论】:
同一个窗口不能出现在多个桌面上。如果您需要您的应用程序窗口出现在多个桌面上,您需要为每个桌面创建一个单独的窗口。出现窗口的桌面取决于创建窗口的线程。您可以使用 SetThreadDesktop 函数更改桌面线程分配。
【讨论】:
SW_HIDE 标志的 ShowWindow。但是说我确实想将它隐藏在当前桌面中并在另一个桌面中显示它。那将是(伪代码):ShowWindow(SW_HIDE); SetThreadDesktop(CreateDesktop())); ShowWindow(SW_SHOW)?它会出现在新桌面上吗?
答案就是ShowWindow(SW_HIDE) 和ShowWindow(SW_SHOW)。我认为“虚拟桌面管理器”只是隐藏窗口并在桌面更改时根据需要显示它们。
【讨论】: