У меня есть приложение на C #, с которого я запускаю отдельное окно win32.Я выполняю маршалинг Win32 API-интерфейсов в свое приложение на C # и пытаюсь контролировать win32 с этого.Я переключаю окно при нажатии кнопки, чтобы оно было либо развернуто поверх всех окон всегда, либо свернуто.
Оно будет отображаться развернуто, затем игнорирует нажатие первой кнопки, чтобы скрыть, а затем остается показанным, когда я нажимаюкнопка снова, затем, наконец, прячется, когда я нажимаю кнопку 3 раза с тем же кодом.Это ведет себя как хотелось бы с этого момента.Я уверен, что это должны быть некоторые флаги Windows, которые не установлены должным образом, пока он не пройдет сначала цикл максимизации / минимизации.
Вот жизненный цикл окна:
Создать окноразвернуто
A:
Скрыть:
target_hwnd = FindWindowHandleByCaption()
ShowWindow(target_hwnd, SW_SHOWMINIMIZED);
Показать:
target_hwnd = FindWindowHandleByCaption()
ShowWindow(target_hwnd, SW_SHOWMAXIMIZED);
Перейти к A:
Что я делаюнеправильно?Я часами пробовал разные фрагменты кода, но безрезультатно.
Заранее спасибо!
РЕДАКТИРОВАТЬ:
Решил мою проблему, просто выполнив:
SendMessage(target_hwnd.ToInt32(), WM_SYSCOMMAND, SC_MINIMIZE, 0);
SendMessage(target_hwnd.ToInt32(), WM_SYSCOMMAND, SC_MAXIMIZE, 0);
Вместо использования ShowWindow.