SW_HIDE和SW_SHOW无法正常工作

时间:2019-10-16 09:37:22

标签: c++ winapi show-hide

我有两个申请。这两个应用程序互相通信。

让我们说他们的名字叫'Alpha'和'Beta'。

我希望Alpha保持隐藏状态,直到我单击Beta上的某个按钮。

我在Alpha中拥有SetForeground方法,该方法可以响应Beta中的按钮点击消息。

初始化Alpha时,我使用了SetForeground(false)

因此,当我运行该应用程序时,Alpha是隐藏的。

这种方法看起来像这样。

void SetForeground(bool fg)  // SetForeground gets false when the application is started
{
    if (fg)
    {
        ShowWindow(m_hWnd, SW_SHOW);
    }
    else
    {
        ShowWIndow(m_hWnd, SW_HIDE);
    }
}

但是,上面的代码无法正常工作。

启动时Alpha不会隐藏。

因此,我将ShowWindow(m_hWnd, SW_HIDE)固定为ShowWindow(m_hWnd, SW_MINIMIZE)

有效。该应用程序消失了。

但是ShowWindow(m_hWnd, SW_SHOW)无效。

它必须显示一个隐藏的窗口,但是没有。

我尝试使用SW_RESTORE和SW_SHOWNORMAL而不是SW_SHOW,但它们都不起作用。

我试图改变自己的策略。

我认为更改z顺序可能是个不错的选择,而不是隐藏/显示窗口。

我发现BringWindowToTop是将窗口置于顶部的一种好方法,但是我找不到如何降低应用程序的z顺序。

0 个答案:

没有答案