如何将窗口取消最小化到之前的完全状态(恢复或最大化)?

时间:2009-08-31 09:28:09

标签: windows

在Windows中,我有一个最小化的窗口,它是前景窗口(GetForegroundWindow)。我现在想要取消窗口的最小化,使其再次可见。如何将窗口恢复到以前的状态?即,如果窗口在最小化之前被“恢复”,则应该恢复,如果在最小化之前它被最大化,它应该再次最大化,特别是不能恢复或者其他东西。

似乎我只能从{最小化,恢复,最大化}中确定窗口的当前状态,但理论上,最小化和最大化应该是可以一起设置的标志。

如果用户点击它,资源管理器任务栏如何知道显示窗口的状态?

2 个答案:

答案 0 :(得分:1)

如果使用类似C的东西,可以查看ShowWindow函数:

ShowWindow(hWnd, SW_RESTORE)
  

<强> SW_RESTORE
  激活并显示   窗口。如果窗口最小化或   最大化,系统恢复它   它的原始大小和位置。一个   应用程序应指定此标志   恢复最小化窗口时。

答案 1 :(得分:0)

如果没有技术(我不知道您使用的语言),程序需要存储当前的正常大小,当前状态和以前的状态。

然后从最小化恢复时,可以检查以前的状态和大小。

在WPF中,当前大小和状态存储在主窗口的TopLeftHeightWidthWindowState属性中。位置和大小的副本保存在RestoreBounds结构中,例如,从Maximized恢复窗口时,基类会使用它(因此您不必这样)。