Окно другого приложения можно временно сделать «самым верхним», чтобы вывести его на передний план, не активируя его, сначала указав HWND_TOPMOST
как «hWndInsertAfter» в вызове SetWindowPos
, а затем указав HWND_NOTOPMOST
в второй вызов (оба вызова с SWP_NOACTIVATE
в «uFlags»). Если есть риск удалить самый верхний стиль окна, который уже является самым верхним в результате операции, можно предварительно протестировать WS_EX_TOPMOST
ex-стиль с помощью вызова GetWindowLong[Ptr]
.
Если есть конкретное окно, в котором окно другого приложения должно быть впереди (в отличие от того, чтобы быть перед всеми окнами), владелец этого окна может быть снова временно установлен на то окно, которое должно быть впереди. GetWindowLong[Ptr]
с GWL_HWNDPARENT
можно использовать для сохранения первоначального владельца окна, затем вызов SetWindowLong[Ptr]
для установки временного владельца, затем вызов SetWindowPos
с HWND_TOP
, а затем восстановление первоначального владельца с снова SetWindowLong[Ptr]
.