Comment afficher une fenêtre Windows toujours au dessus des autres ?
Sous Windows, et ce depuis de nombreuses versions, il est possible d’afficher une fenêtre au dessus de toutes les autres (Top Most), un peu comme une « boite à outils ».
Pour ce faire, il faut utiliser lors de la création d’une fenêtre avec l’API CreateWindowEx(), l’attribut HWND_TOPMOST.
Hors cette option n’est pas disponible depuis WINDEV. La solution est donc de modifier l’attribut de la fenêtre souhaitée en premier plan à l’aide de l’API Windows SetWindowPos().
Cette fonction, essentiellement utilisée pour changer la position d’une fenêtre, permet également dans changer les attribut et donc d’y ajouter le fonctionnement dit « Top Most »,
Code WINDEV à implémenter :
Voici l’appel à l’API à ajouter dans la secrtion code « Fin d’initialisation » de la fenêtre concernée :
API("user32","SetWindowPos", Handle(MaFenêtre..Nom),-1,0,0,0,0,3)
Ou :
(4eme paramètre) -1 correspond à la valeur de la constante
HWND_TOPMOST
(9eme paramètre) -3 correspond aux valeurs cumulée de :
SWP_NOMOVE + SWP_NOSIZE
Notes et références :
Documentation Microsoft sur la fonction SetWindowPos() :
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-setwindowpos