Compartir a través de


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

GetParent

Referencia

Windows