У меня есть два приложения. Эти два приложения общаются друг с другом.
Допустим, их имена «Альфа» и «Бета».
Я хочу, чтобы Альфа оставалась скрытой до тех пор, пока я не нажму определенную кнопку в Бете.
У меня есть метод SetForeground
в Alpha, который отвечает на сообщение о нажатии кнопки из бета-версии.
При инициализации Alpha я использовал SetForeground(false)
.
Таким образом, Альфа скрыта, когда я запускаю приложение.
Этот метод выглядит следующим образом.
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);
}
}
Однако приведенный выше код работает не так, как я предполагал.
Альфа не скрывается при запуске.
Так что вместо этого я установил ShowWindow(m_hWnd, SW_HIDE)
в ShowWindow(m_hWnd, SW_MINIMIZE)
.
Это сработало. Приложение исчезло.
Но ShowWindow(m_hWnd, SW_SHOW)
не работает.
Должно отображаться скрытое окно, но это не так.
Я пробовал SW_RESTORE и SW_SHOWNORMALвместо SW_SHOW, и ни один из них не работал.
Я пытался изменить свою стратегию.
Вместо того, чтобы скрывать / показывать окно, я подумал, что изменение z-порядка может быть хорошим выбором.
Я обнаружил, что BringWindowToTop
- хороший способ поднять мое окно наверх, но я не смог 'не могу найти способ понизить z-порядок моего приложения.