Z порядок выпуска полноэкранного оконного приложения

В конфигурации с несколькими мониторами и расширенным дисплеем приложение Windows занимает весь экран на одном мониторе. Я хочу поставить другое приложение поверх первого приложения, щелкнув значок приложения на панели задач на дополнительном мониторе. Однако я не могу поставить какое-либо другое приложение поверх первого приложения. Когда я нажимаю на значок первой панели задач приложения на дополнительном мониторе, я могу вывести другие приложения на первое место. Какое свойство окна первого приложения может вызывать такое поведение

Я должен иметь возможность размещать другие приложения поверх первого приложения.


person scx    schedule 26.10.2019    source источник
comment
Я не могу установить какое-либо другое приложение поверх первого приложения. Кажется, что окно использует HWND_TOPMOST в полноэкранном режиме. Но слова: Когда я нажимаю на значок панели задач первого приложения на дополнительном мониторе, я могу вывести другие приложения поверх. Вы имеете в виду, что только если вы сосредоточитесь на первых окнах, вы сможете вывести другие окна поверх?   -  person Drake Wu    schedule 28.10.2019
comment
@DrakeWu-MSFT Да, вы правы, если я сосредоточусь на первых окнах, я смогу вывести другие окна сверху   -  person scx    schedule 28.10.2019
comment
1. Какое первое приложение и было ли оно разработано вами? 2. Если да, предоставьте минимальный, воспроизводимый образец, который может воспроизвести проблему и помочь людям найти и решить проблему. для тебя.   -  person Drake Wu    schedule 28.10.2019
comment
Это зависит от того, как запрограммировано окно. Я могу просто использовать следующие методы для воспроизведения подобных проблем. 1.создайте настольное приложение. 2. SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); при получении SIZE_MAXIMIZED или любого полноэкранного сообщения от WM_SIZE. 3. SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); при получении фокусного сообщения WM_SETFOCUS.   -  person Drake Wu    schedule 28.10.2019
comment
@DrakeWu-MSFT Вы можете воссоздать с помощью вышеуказанных шагов?   -  person scx    schedule 28.10.2019
comment
Я могу воспроизвести проблему с этим после максимального экрана или полноэкранного режима, установить стиль окна на самый верхний, а затем установить не самый верхний при получении сообщения о фокусе. Явление таково: когда экран развернут или заполнен, окно не может быть закрыто другими не самыми верхними окнами. При нажатии на значок на панели задач другие окна могут его закрыть.   -  person Drake Wu    schedule 28.10.2019
comment
@DrakeWu-MSFT я проверю это, спасибо   -  person scx    schedule 28.10.2019
comment
Какой-либо прогресс? Пожалуйста, не стесняйтесь предоставлять информацию, о которой я упоминал ранее, чтобы мы могли помочь вам лучше.   -  person Drake Wu    schedule 30.10.2019
comment
@DrakeWu-MSFT Спасибо за внимание, есть ли какой-нибудь инструмент, который я могу использовать, чтобы знать, почему приложение отстает (теряет фокус), я знаю о Spy ++, но его можно использовать только с Visual Studio   -  person scx    schedule 30.10.2019
comment
Кажется, здесь есть что-то полезное. stackoverflow .com/questions/1811019/   -  person Drake Wu    schedule 30.10.2019
comment
@DrakeWu-MSFT Я могу просто использовать следующие методы для воспроизведения подобных проблем. 1.создайте настольное приложение. 2. SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); когда получите SIZE_MAXIMIZED или любое полноэкранное сообщение от WM_SIZE. 3. SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); при получении сообщения о фокусе WM_SETFOCUS Это решение или способ воссоздать проблему?   -  person scx    schedule 31.10.2019
comment
Да, это возможный способ воспроизвести проблему. В этом случае решение состоит в использовании SetWindowPos и правильно используйте нужный hWndInsertAfter (например, всегда устанавливайте HWND_NOTOPMOST так, чтобы окно могло быть закрыто другими окнами)   -  person Drake Wu    schedule 01.11.2019
comment
Я попытался заменить HWND_TOPMOST на HWND_NOTOPMOST, но безуспешно.   -  person scx    schedule 01.11.2019
comment
@DrakeWu-MSFT я прокомментировал выше   -  person scx    schedule 02.11.2019
comment
Можете ли вы предоставить минимальный, воспроизводимый образец?   -  person Drake Wu    schedule 04.11.2019
comment
@DrakeWu-MSFT Извините, у него несколько процессов и несколько окон, поделиться воспроизводимым образцом будет сложно. Я попытался заменить HWND_TOPMOST на HWND_NOTOPMOST, а также закомментировал вызовы SETForegroundWindow. Что-нибудь еще, на что можно обратить внимание?   -  person scx    schedule 04.11.2019
comment
Можно узнать кто минусовал? Если проголосовали против, можете ли вы прокомментировать это   -  person scx    schedule 04.11.2019
comment
Вы делали это на одном сеансе? Можете ли вы предоставить некоторые фрагменты кода, связанные с обработкой оконных сообщений?   -  person Drake Wu    schedule 04.11.2019
comment
@DrakeWu-MSFT Я перехватлю сообщения Windows, вы хотите, чтобы я увидел что-нибудь особенное?   -  person scx    schedule 05.11.2019
comment
Не могли бы вы проверить, имеет ли окно стиль окна Ex WS_EX_TOPMOST с помощью этого метод после полноэкранного режима? И еще вопрос, это окно UWP или окно рабочего стола? Поскольку SetWindowPos доступно только для настольных приложений.   -  person Drake Wu    schedule 06.11.2019
comment
@DrakeWu-MSFT Это настольное приложение.   -  person scx    schedule 06.11.2019
comment
Окно имеет стиль окна Ex WS_EX_TOPMOST?   -  person Drake Wu    schedule 07.11.2019
comment
@DrakeWu-MSFT Я проверю в течение двух дней и дам тебе знать   -  person scx    schedule 07.11.2019
comment
@DrakeWu-MSFT Свойства, проверенные с помощью Spy++: Стили окон: WS_CHILDWINDOW,WS_VISIBLE,WS_DISABLED,WS_CLIPSIBLINGS и WS_CLIPCHILDRE   -  person scx    schedule 11.11.2019
comment
@DrakeWu-MSFT Расширенные стили Windows: WS_EX_LEFT, WS_EX_LTTRREADING, WS_EX_NOPARENTNOTIFY, WS_EX_RIGHTSCROLLBAR.   -  person scx    schedule 11.11.2019
comment
Это дочернее окно. Если его родительское окно имеет самый верхний стиль, то дочернее окно также является самым верхним   -  person Drake Wu    schedule 13.11.2019