Estou me perguntando sobre o sistema de prioridade de visibilidade da janela que permite que algumas janelas fiquem sobre outras janelas. Por exemplo:
quando usamos o modo 'Picture in picture' no Chrome, podemos forçar um feed de vídeo a ser sobreposto na maioria das outras janelas do programa.
quando usamos um script, como este script AutoHotKey:
^SPACE:: Winset, Alwaysontop, , A
podemos forçar a maioria das janelas do programa a permanecer sobrepostas na maioria das outras janelas do programa.Quando um programa é definido no modo de tela cheia (como um jogo ou reprodutor de mídia), a visibilidade da janela terá prioridade sobre a maioria dos programas.
Estou interessado em entender o sistema que atribui as hierarquias da visibilidade da janela do programa e como o Windows gerencia essas hierarquias.
Por exemplo, por que o modo 'Picture in picture' no Chrome permite sobrepor tudo, exceto um jogo em tela cheia? Eu pensei que talvez todos os programas de tela cheia tivessem prioridade, no entanto, quando o SMPlayer está no modo de tela cheia, o modo 'Picture in Picture' no Chrome ainda tem prioridade.
Então minha pergunta é esta; que sistema é usado para priorizar a visibilidade da janela e como são atribuídas as hierarquias a cada programa e seus diferentes modos?
Qual sistema é usado para priorizar a visibilidade da janela
As janelas têm uma ordem Z, que é definida quando são criadas:
Fonte: Recursos do Windows - Aplicativos Win32 | Microsoft Learn