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:
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...
voir aussi la fonction
setForegroundWindow ()