Afficher ou cacher une fenêtre

 

Maintenant que l'instance de votre fenêtre est créée, il faut l'afficher:

Pour commencer, il va falloir indiquer l'état de l'affichage, c'est à dire

  • affichage normal
  • ou iconiser par exemple.

La fonction à utiliser est la fonction ShowWindow:

BOOL ShowWindow(

HWND hwnd,

int nCmdShow

);

Les paramètres sont:

hwnd : pour le handle de la window

nCmdShow : qui va spécifier comment la fenêtre doit être affichée.

Valeur Désignation
SW_HIDE Cache la fenêtre est active donc une autre fenêtre
SW_MAXIMIZE La window occupe la totalité de l'écran
SW_MINIMIZE Minimise la fenêtre et active la fenêtre suivante
SW_RESTORE Active et affiche une fenêtre. Si la fenêtre était de taille minimum, alors remettre la taille d'origine de la fenêtre. A utiliser par exemple lorsque la fenêtre a été minimisée.
SW_SHOW Active la fenêtre et utilise la taille et la position courante.
SW_SHOWDEFAULT Utilise les valeurs passées au lancement du programme. Ce sont les paramètres passés dans la structure STARTUPINFO par le programme qui a lancé l'application.
SW_SHOWMAXIMIZED Active et affiche la fenêtre sur la totalité de l'écran
SW_SHOWMINIMIZED Minimise la fenêtre.
SW_SHOWMINNOACTIVE Minimise la fenêtre. La fenêtre qui était active avant la commande restera active.
SW_SHOWNA Affiche la fenêtre avec ses valeurs avant d'avoir été minimisée. La fenêtre qui était active avant la commande restera active.
SW_SHOWNOACTIVATE Affiche la fenêtre avec les plus récentes tailles et positions. La fenêtre qui était active avant la commande restera active.
SW_SHOWNORMAL Active et affiche une fenêtre. Si la fenêtre a été minimisée ou occupait la totalité de l'écran précédemment, celle-ci sera restaurée à ses valeurs d'origine.

 

En principe, au lancement de votre application, vous devez appeler la commande ShowWindow avec la valeur nCmdShow passée à la fonction WinMain. Par la suite, vous pourrez utiliser une de ces valeurs dans votre code suivant le bon plaisir de l'utilisateur.

La fonction retourne une valeur qui informe que la fenêtre était visible avant l'appel à la fonction (TRUE) ou non (FALSE).

La fenêtre étant affichée, il faut afficher son contenu. En fait, de manière plus générale, vous provoquerez le rafraîchissement de contenu de la zone client. Pour cela, il faut utiliser la fonction suivante:

UpdateWindow (hwnd);

Image non trouvée !Cet appel va envoyer à la procédure de gestions des mesages de votre fenêtre (WndProc) le message WM_PAINT...Mais une chose en son temps !

Retour aux différents chapitres...

 

Image non trouvée !voir aussi la fonction setForegroundWindow ()