Correctement écrit applications Windows qui veulent sauver leur emplacement d'une exécution permettra d'enregistrer les résultats de GetWindowPlacement() avant de s'arrêter, puis utilisez SetWindowPlacement() au démarrage pour rétablir leur position.
Souvent, dans le cas des applications de stocker les résultats de GetWindowPlacement() dans le registre comme un REG_BINARY pour une utilisation facile.
Le WINDOWPLACEMENT route a de nombreux avantages par rapport à d'autres méthodes:
- Traite le cas où la résolution de l'écran a changé depuis la dernière exécution: SetWindowPlacement() va automatiquement s'assurer que la fenêtre n'est pas entièrement hors de l'écran
- Enregistre l'état (la réduire ou l'agrandir) mais aussi d'économiser les restaurée (normal) la taille et la position de
- Poignées de bureau métriques correctement, pour compenser la position de la barre des tâches, etc. (c'est à dire utilise des coordonnées de l'espace de travail" au lieu de "à l'écran des coordonnées"--des techniques qui s'appuient sur l'enregistrement des coordonnées de l'écran peut souffrir de la "marche de windows" problème où une fenêtre apparaîtra toujours un peu plus bas à chaque fois si l'utilisateur dispose d'une barre d'outils en haut de l'écran).
Enfin, les Programmes qui traitent de la fenêtre de restauration bien prendre en compte le "nCmdShow" paramètre passé à partir du shell. Ce paramètre est défini dans le raccourci qui lance l'application (Normal, Minimiser, Maximiser):
if(nCmdShow != SW_SHOWNORMAL)
placement.showCmd = nCmdShow; //allow shortcut to override
Pour les non-applications Win32, il est important d'être sûr que la méthode que vous utilisez pour sauvegarder/restaurer la position de la fenêtre finalement utilise le même appel sous-jacent, dans le cas contraire (comme Java Swing du setBounds()/getBounds() problème), vous finirez écrire beaucoup de code supplémentaire pour re-mettre en œuvre la fonctionnalité qui est déjà là dans le WINDOWPLACEMENT fonctions.