56 votes

Propriétaire de fenêtre Win32 vs. Parent de fenêtre ?

Dans la programmation Win32, quelle est la différence entre le parent d'une fenêtre et le propriétaire d'une fenêtre ? Je pensais avoir trouvé la réponse, puis je suis tombé sur ce code :

SetWindowLong(handle, GWL_HWNDPARENT, foo);

Cela définit en fait le propriétaire de la fenêtre, et non le parent - malgré l'utilisation de GWL_HWNDPARENT. Les termes "parent" et "propriétaire" sont-ils interchangeables, ou existe-t-il une différence ?

0 votes

Expliqué en détail sur msdn

0 votes

0 votes

Mise à jour de l'URL de l'article de Raymond Chen : devblogs.microsoft.com/oldnewthing/20100315-00/?p=14613

0voto

Kuba Ober Points 18926

C'est super facile : le code est faux. Fin de l'histoire ici.

Oui, il se peut que certains Windows réagissent favorablement à un tel appel - quelqu'un qui n'en savait pas plus peut avoir implémenté un support pour cela. La documentation (et c'est vieux documentation) - _Vous ne devez pas appeler SetWindowLong avec le GWL_HWNDPARENT index pour changer le parent d'une fenêtre enfant. Au lieu de cela, utilisez l'élément SetParent fonction._

Donc, tout ce qu'il y a à faire : vous êtes tombé sur du code bogué, changez-le en SetParent ou refactoriser pour faire autre chose, et continuer ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X