我有两个申请。这两个应用程序互相通信。
让我们说他们的名字叫'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顺序。