SetParent, fonction (winuser.h)
Modifie la fenêtre parente de la fenêtre enfant spécifiée.
Syntaxe
HWND SetParent(
[in] HWND hWndChild,
[in, optional] HWND hWndNewParent
);
Paramètres
[in] hWndChild
Type : HWND
Handle vers la fenêtre enfant.
[in, optional] hWndNewParent
Type : HWND
Handle vers la nouvelle fenêtre parente. Si ce paramètre a la valeur NULL, la fenêtre de bureau devient la nouvelle fenêtre parente. Si ce paramètre est HWND_MESSAGE, la fenêtre enfant devient une fenêtre de message uniquement.
Valeur retournée
Type : HWND
Si la fonction réussit, la valeur de retour est un handle de la fenêtre parente précédente.
Si la fonction échoue, la valeur de retour est NULL. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Une application peut utiliser la fonction SetParent pour définir la fenêtre parente d’une fenêtre contextuelle, superposée ou enfant.
Si la fenêtre identifiée par le paramètre hWndChild est visible, le système effectue le redessinage et le repeint appropriés.
Pour des raisons de compatibilité, SetParent ne modifie pas les styles de fenêtre WS_CHILD ou WS_POPUP de la fenêtre dont le parent est en cours de modification. Par conséquent, si hWndNewParent a la valeur NULL, vous devez également effacer le bit WS_CHILD et définir le style WS_POPUP après avoir appelé SetParent. À l’inverse, si hWndNewParentn’a pas la valeur NULL et que la fenêtre était auparavant un enfant du bureau, vous devez effacer le style WS_POPUP et définir le style WS_CHILD avant d’appeler SetParent.
Lorsque vous modifiez le parent d’une fenêtre, vous devez synchroniser l’UISTATE des deux fenêtres. Pour plus d’informations, consultez WM_CHANGEUISTATE et WM_UPDATEUISTATE.
Des erreurs ou des comportements inattendus peuvent se produire si hWndNewParent et hWndChild s’exécutent dans différents modes de reconnaissance ppp. Le tableau ci-dessous décrit ce comportement :
Opération | Windows 8.1 | Windows 10 (1607 et versions antérieures) | Windows 10 (1703 et versions ultérieures) |
---|---|---|---|
SetParent (in-proc) | N/A | Réinitialisation forcée (du processus actuel) | Échec (ERROR_INVALID_STATE) |
SetParent (cross-proc) | Réinitialisation forcée (du processus de la fenêtre enfant) | Réinitialisation forcée (du processus de la fenêtre enfant) | Réinitialisation forcée (du processus de la fenêtre enfant) |
Pour plus d’informations sur la prise en charge des ppp, consultez la documentation Windows High DPI.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Ensemble d’API | ext-ms-win-ntuser-window-l1-1-0 (introduit dans Windows 8) |
Voir aussi
Conceptuel
Référence