Avec le froid qui sévit actuellement, on aurait plutôt tendance à fermer les fenêtres. Je vous propose au contraire de les ouvrir, avec un premier exemple en GFA Windows:
syntaxe:
En GFW (je ne vais pas écrire GFA Windows à chaque fois !), _X contient la largeur en pixels de l'écran et _Y sa hauteur en pixels.
Notre fenêtre étant de dimensions 640 x 400, _X/2-320 permet de la centrer en largeur et _Y/2-200 de la centrer en hauteur.
Les attributs permettent de définir les différentes options de la fenêtre: ascenseurs, croix de fermeture, barre de titre, etc... Ils sont codés sur 9 bits dont voici la signification:
Dans notre exemple (%001110000) seuls les bits 4,5 et 6 sont à 1 donc notre fenêtre aura une barre de titre, une croix de fermeture et un bouton pour l'iconifier (minimiser)
TITLEW # numéro de la fenêtre, "titre" permet d'ajouter un titre à la notre fenêtre. Bien entendu ça ne sert que si l'on a mis le bit 4 de l'attribut à 1, sinon il n'y a pas de barre de titre...
L'instruction PEEKEVENT contrôle la présence d'événements dans des barres de menu et des fenêtres (fermeture, redimensionnement, redraw -que nous verrons plus tard-). Elle est indispensable pour gérer la fenêtre par la suite.
Ensuite une boucle REPEAT/UNTIL classique qui attend pour quitter que MENU(1)=4, c'est a dire qu'un clic soit détecté sur la croix de fermeture !
CLOSEW #numéro de la fenêtre ferme la fenêtre, donc CLOSEW #1 dans notre exemple.
Vous y trouverez d'autres instructions de gestion des fenêtres (FULLW #n, SIZEW #n, TOPW #n ...) ainsi que toutes les valeurs qu peut prendre MENU() pour la gestion des fenêtres !
Pour revenir à notre exemple, nous avons maintenant une fenêtre que l'on peut déplacer, iconifier et fermer avec la croix de fermeture.
Notre fenêtre sous Windows XP (lancé sur Windows 7 x64 via Microsoft Virtual PC):

Dans le chapitre suivant je vous proposerai de charger une image au format bmp à l'intérieur, nous en profiterons pour voir comment gérer les "redraw"