在Windows中,我有一个最小化的窗口,即前景窗口(GetForegroundWindow)。我现在想要取消最小化窗口,以便它再次可见。如何将窗口恢复到以前的状态?也就是说,如果窗口在最小化之前被“恢复”,那么它应该被恢复,如果它在被最小化之前被最大化,它应该再次被最大化,特别是不被恢复之类的。
似乎我只能从{最小化,还原,最大化}中确定窗口的当前状态,但理论上,最小化和最大化应该是可以一起设置的标志。
Explorer任务栏如何知道在用户单击窗口时以何种状态显示该窗口?
发布于 2009-08-31 09:36:32
如果你使用像C这样的东西,你可以看看ShowWindow函数:
ShowWindow(hWnd, SW_RESTORE)SW_RESTORE
激活并显示窗口。如果窗口被最小化或最大化,系统会将其恢复到其原始大小和位置。应用程序在还原最小化窗口时应指定此标志。
发布于 2009-08-31 09:38:18
在不涉及技术的情况下(例如,我不知道您正在使用的语言),程序需要存储当前正常大小、当前状态和以前的状态。
然后,当从最小化恢复时,它可以检查以前的状态和大小。
在WPF中,当前的大小和状态存储在主窗口的Top、Left、Height、Width和WindowState属性中。位置和大小的副本保存在RestoreBounds结构中,这是由基类使用的(所以你不必这样做),例如,当从最大化的窗口恢复时。
https://stackoverflow.com/questions/1356636
复制相似问题