DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Champs, pages et fenêtres / Fonctions de gestion des fenêtres
  • Ouverture modale/Ouverture non modale
  • Différences entre les constantes Invisible et HorsEcran
  • Fenêtre inactive ou invisible
  • Fermeture de la fenêtre
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Identifie ou modifie l'état d'une fenêtre.
Remarque : La fonction FenEtat permet également de tester l'existence d'une fenêtre.
Exemple
// Identification de l'état de la fenêtre en cours
ResFenEtat = FenEtat()
// Modification de l'état d'une fenêtre
SELON FenEtat(FEN_NomFenêtre)
CAS Actif
FenEtat(FEN_NomFenêtre, Grisé)
CAS Inexistant
Ouvre(FEN_NomFenêtre)
FIN
Syntaxe

Identifier l'état d'une fenêtre Masquer les détails

<Résultat> = FenEtat([<Fenêtre manipulée>])
<Résultat> : Constante
Etat actuel de la fenêtre :
ActifFenêtre active (fenêtre en saisie, même si elle n'a pas le focus).
AffichageSeulementFenêtre inactive (cette fenêtre n'est pas en saisie).
GriséLes champs de la fenêtre sont grisés.
HorsEcranFenêtre active mais présente en dehors de la zone visible de l'écran.
Universal Windows 10 AppAndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Cette constante n'est pas disponible.
InexistantFenêtre fermée ou inexistante.
InvisibleFenêtre invisible à l'écran et inactive.
<Fenêtre manipulée> : Nom de fenêtre optionnel ou chaîne de caractères optionnelle
Nom ou alias de la fenêtre à manipuler.
Si ce paramètre n'est pas précisé ou correspond à une chaîne vide (""), l'état de la fenêtre en cours est retourné.

Modifier l'état d'une fenêtre Masquer les détails

<Résultat> = FenEtat(<Fenêtre manipulée> , <Etat de la fenêtre>)
<Résultat> : Constante
Etat après modification :
ActifFenêtre active (fenêtre en saisie).
AffichageSeulementFenêtre inactive (cette fenêtre n'est pas en saisie).
GriséLes champs de la fenêtre sont grisés.
HorsEcranFenêtre active mais présente en dehors de la zone visible de l'écran.
Universal Windows 10 AppAndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Cette constante n'est pas disponible.
InexistantFenêtre fermée ou inexistante.
InvisibleFenêtre invisible à l'écran et inactive.
AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Il n'est pas possible de rendre une fenêtre invisible.
<Fenêtre manipulée> : Nom de fenêtre ou chaîne de caractères
Nom ou alias de la fenêtre à manipuler.
Si ce paramètre correspond à une chaîne vide (""), l'état de la fenêtre en cours est modifié.
<Etat de la fenêtre> : Constante
Indique le nouvel état et le nouveau positionnement de la fenêtre spécifiée.
Si ce paramètre correspond à une chaîne vide (""), le changement de position (constante Dessus, DessusTout, Normal) d'une fenêtre est annulé.
ActifLa fenêtre devient active (fenêtre en saisie).
ActifDevantLa fenêtre devient active (fenêtre en saisie) et mise en avant plan. Cette constante correspond au résultat d'un clic sur la barre de titre de la fenêtre.
Universal Windows 10 AppiPhone/iPadWidget IOSApple WatchMac Catalyst Cette constante n'est pas disponible.
AffichageSeulementLa fenêtre devient inactive (aucun champ de la fenêtre ne permet la saisie).
DessusLa fenêtre passe en premier plan par rapport aux autres fenêtres de l'application.
Universal Windows 10 AppiPhone/iPadWidget IOSApple WatchMac Catalyst Cette constante n'est pas disponible.
DessusToutLa fenêtre passe en premier plan par rapport à toutes les autres fenêtres, même celles des autres applications. Cette constante est ignorée dans le cas des fenêtres filles MDI affichées à partir d'une fenêtre mère MDI.

LinuxUniversal Windows 10 AppAndroidiPhone/iPadWidget IOSMac CatalystJava Cette constante n'est pas disponible.
GriséLes champs de la fenêtre sont grisés.
HorsEcranLa fenêtre reste active mais elle se positionne en dehors de la zone visible de l'écran.
Universal Windows 10 App Cette constante n'est pas disponible.
InexistantLa fenêtre se ferme. Si cette fenêtre n'existe pas, une erreur du WLangage est générée.
InvisibleLa fenêtre devient invisible à l'écran et inactive.
AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Il n'est pas possible de rendre une fenêtre invisible.
NormalUne fenêtre en mode DessusTout passe en mode normal (les fenêtres des autres applications peuvent à nouveau passer devant). Dans les autres cas, cette constante est sans effet.
Universal Windows 10 App Cette constante n'est pas disponible.
Remarques

Ouverture modale/Ouverture non modale

En ouverture modale (fenêtre mère MDI et fenêtre fille MDI), la fonction FenEtat ne peut pas être utilisée :
  • pour rendre active une fenêtre mère.
  • pour afficher une fenêtre fille "dessus" avec la constante Dessus ou DessusTout depuis une mère MDI.
En ouverture modale, si une fenêtre mère est rendue invisible, la fenêtre fille est également rendue invisible.
En ouverture non modale, si une fenêtre mère ayant au moins une fenêtre fille est rendue invisible, la ou les fenêtres filles ne sont pas rendues invisibles.

Différences entre les constantes Invisible et HorsEcran

  • Si une fenêtre mère est de type :
    • HorsEcran, cette fenêtre apparaît dans la liste des applications Windows (accessible par la combinaison de touches Alt Tab).
    • Invisible, cette fenêtre n'apparaît pas dans la liste des applications Windows (accessible par la combinaison de touches Alt + Tab).
  • Les coordonnées d'une fenêtre de type HorsEcran sont négatives.
  • Le passage de l'état :
    • Invisible à l'état Actif déclenche l'exécution des traitements de prise et de perte de focus de manière incohérente.
    • HorsEcran à l'état Actif déclenche correctement l'exécution des traitements de prise et de perte de focus.
Conseil : Préférez l'état HorsEcran à l'état Invisible.
  • Si une fenêtre qui est de type HorsEcran est ré-affichée avec la fonction FenEtat et la constante Actif, la fonction FenEtat ne donne pas le focus à la fenêtre.
  • Si la fenêtre de type HorsEcran n'avait pas le focus, elle n'a pas le focus après l'utilisation de la fonction FenEtat.
AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Il n'est pas possible de rendre une fenêtre invisible.

Fenêtre inactive ou invisible

Si la fenêtre en cours devient inactive ou invisible, le traitement de "perte de focus" de la fenêtre sera exécuté avant le changement d'état.
AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst Il n'est pas possible de rendre une fenêtre invisible.

Fermeture de la fenêtre

Le code suivant permet de fermer la fenêtre :
FenEtat(<Nom de la fenêtre>, Inexistant)
Ce code est équivalent à la fonction Ferme.
Composante : wd300obj.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Utilisation dans le thread principal uniquement (WM)
Si, à la compilation de l'appli WM, vous obtenez l'erreur :
"L'opération '=' est interdite entre un élément de type fenêtre et un élément de type chaîne."
C'est peut-être que l'instruction FenEtat a été utilisée en dehors du thread principal.
Il suffit alors de mettre cette instruction dans une procédure interne, et de la lancer avec ExecuteThreadPrincipal
CV
28 nov. 2019

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale