Переместить окно поверх других.
От: Went  
Дата: 02.11.16 14:33
Оценка:
Здравствуйте. Есть окно, чей хэндл мне известен. В общем случае оно может принадлежать другому процессу. Необходимо переместить окно поверх других (результат, аналогичный Alt + Tab-у на иконку данного приложения). Не могу подобрать WIN API функцию, которая бы дала нужный результат. Варианты, которые я попробовал:

1. ShowWindow(hwnd, SW_RESTORE);
Это работает для случая, если окно свернуто, для окна, которое накрыто другим окном, ничего не происходит по-моему.

2. SetForegroundWindow(hwnd);
Это работает почти всегда, кроме одного важного случая. У меня два инстанса одного приложения — два одинаковых окна накладываются точно одно поверх другого. Если нижнее приложение пытается "всплыть" при помощи этой функции, таскбар активируется, нужное приложение становится "синим" (ну, якобы получает фокус), но само окно остается накрытым старым окном.

3. BringWindowToTop(hwnd);
Вообще ничего не делает.

Как быть? Есть какой-то надежный способ "поднять" окно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.