代码之家  ›  专栏  ›  技术社区  ›  ygoe

如何取消窗口最小化以达到之前的准确状态(恢复或最大化)?

  •  0
  • ygoe  · 技术社区  · 15 年前

    在Windows中,我有一个最小化的窗口,即前台窗口(getForegroundWindow)。我现在想取消最小化窗口,使其再次可见。如何将窗口恢复到以前的状态?也就是说,如果窗户在最小化之前被“恢复”,它应该被恢复;如果在最小化之前被最大化,它应该被再次最大化,特别是不被恢复或其他什么。

    似乎我只能在最小化、还原、最大化之外确定窗口的当前状态,但理论上,最小化和最大化应该是可以一起设置的标志。

    如果用户单击浏览器任务栏,它如何知道在什么状态下显示窗口?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Mikhail Churbanov    15 年前

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

    ShowWindow(hWnd, SW_RESTORE)
    

    SWI恢复
    激活并显示 窗口。如果窗口最小化或 最大化后,系统将其恢复为 它的原始大小和位置。安 应用程序应指定此标志 还原最小化窗口时。

        2
  •  0
  •   ChrisF    15 年前

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

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

    在WPF中,当前大小和状态存储在 Top ,请 Left ,请 Height ,请 Width WindowState 主窗口的属性。位置和大小的副本保存在 RestoreBounds 例如,当从最大化恢复窗口时,基类(因此您不必这样做)使用结构。