首页 > 解决方案 > ShowWindow 仅在最后一次最小化时恢复窗口

问题描述

我正在尝试用 C++ 制作一个显示最小化计算器的程序。

如果我最小化它,它会起作用,但如果我最小化计算器,然后是另一个程序(如 Firefox),则该程序不再显示计算器。

int main()
{
    hwnd = FindWindow(NULL,TEXT("Calculator"));
    ShowWindow(hwnd, SW_SHOW);
    return 0;
}

标签: c++winapifindwindowshowwindow

解决方案


如果计算器被最小化(参见IsIconic()),那么您应该使用SW_RESTORE而不是SW_SHOW,根据ShowWindow()文档:

SW_RESTORE
9

激活并显示窗口。如果窗口被最小化或最大化,系统会将其恢复到原来的大小和位置。应用程序在恢复最小化窗口时应指定此标志。

SW_SHOW
5

激活窗口并以其当前大小和位置显示它。

尝试这个:

int main()
{
    HWND hwnd = FindWindow(NULL, TEXT("Calculator"));
    if (hwnd)
    {
        if (IsIconic(hwnd))
            ShowWindow(hwnd, SW_RESTORE);
        else
            ShowWindow(hwnd, SW_SHOW);
    }
    return 0;
}

推荐阅读