Función SetParent (winuser.h)
Cambia la ventana primaria de la ventana secundaria especificada.
Sintaxis
HWND SetParent(
[in] HWND hWndChild,
[in, optional] HWND hWndNewParent
);
Parámetros
[in] hWndChild
Tipo: HWND
Identificador de la ventana secundaria.
[in, optional] hWndNewParent
Tipo: HWND
Identificador de la nueva ventana primaria. Si este parámetro es NULL, la ventana de escritorio se convierte en la nueva ventana primaria. Si este parámetro es HWND_MESSAGE, la ventana secundaria se convierte en una ventana de solo mensaje.
Valor devuelto
Tipo: HWND
Si la función se ejecuta correctamente, el valor devuelto es un identificador de la ventana primaria anterior.
Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.
Comentarios
Una aplicación puede usar la función SetParent para establecer la ventana primaria de una ventana emergente, superpuesta o secundaria.
Si la ventana identificada por el parámetro hWndChild está visible, el sistema realiza el nuevo dibujo y la reintentos adecuados.
Por motivos de compatibilidad, SetParent no modifica el WS_CHILD ni WS_POPUP estilos de ventana de la ventana cuyo elemento primario se está cambiando. Por lo tanto, si hWndNewParent es NULL, también debe borrar el bit de WS_CHILD y establecer el estilo de WS_POPUP después de llamar a SetParent. Por el contrario, si hWndNewParent no es NULL y la ventana era anteriormente un elemento secundario del escritorio, debe borrar el estilo WS_POPUP y establecer el estilo WS_CHILD antes de llamar a SetParent.
Al cambiar el elemento primario de una ventana, debe sincronizar el UISTATE de ambas ventanas. Para obtener más información, consulte WM_CHANGEUISTATE y WM_UPDATEUISTATE.
Es posible que se produzcan errores o comportamientos inesperados si hWndNewParent y hWndChild se ejecutan en diferentes modos de reconocimiento de PPP. En la tabla siguiente se describe este comportamiento:
Operación | Windows 8.1 | Windows 10 (1607 y versiones anteriores) | Windows 10 (1703 y versiones posteriores) |
---|---|---|---|
SetParent (en proceso) | N/D | Restablecimiento forzado (del proceso actual) | Error (ERROR_INVALID_STATE) |
SetParent (cross-proc) | Restablecimiento forzado (del proceso de la ventana secundaria) | Restablecimiento forzado (del proceso de la ventana secundaria) | Restablecimiento forzado (del proceso de la ventana secundaria) |
Para obtener más información sobre el reconocimiento de PPP, consulte la documentación de Valores altos de PPP de Windows.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winuser.h (incluir Windows.h) |
Library | User32.lib |
Archivo DLL | User32.dll |
Conjunto de API | ext-ms-win-ntuser-window-l1-1-0 (introducido en Windows 8) |
Consulte también
Conceptual
Referencia