Função SetParent (winuser.h)

Altera a janela pai da janela filho especificada.

Sintaxe

HWND SetParent(
  [in]           HWND hWndChild,
  [in, optional] HWND hWndNewParent
);

Parâmetros

[in] hWndChild

Digite: HWND

Um identificador para a janela filho.

[in, optional] hWndNewParent

Digite: HWND

Um identificador para a nova janela pai. Se esse parâmetro for NULL, a janela da área de trabalho se tornará a nova janela pai. Se esse parâmetro for HWND_MESSAGE, a janela filho se tornará uma janela somente mensagem.

Retornar valor

Digite: HWND

Se a função for bem-sucedida, o valor retornado será um identificador para a janela pai anterior.

Se a função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Um aplicativo pode usar a função SetParent para definir a janela pai de uma janela pop-up, sobreposta ou filho.

Se a janela identificada pelo parâmetro hWndChild estiver visível, o sistema executará o redesenho e a repinização apropriados.

Por motivos de compatibilidade, SetParent não modifica os estilos de janela WS_CHILD ou WS_POPUP da janela cujo pai está sendo alterado. Portanto, se hWndNewParent for NULL, você também deverá limpar o bit WS_CHILD e definir o estilo WS_POPUP depois de chamar SetParent. Por outro lado, se hWndNewParent não for NULL e a janela anteriormente fosse um filho da área de trabalho, você deverá limpar o estilo WS_POPUP e definir o estilo WS_CHILD antes de chamar SetParent.

Ao alterar o pai de uma janela, você deve sincronizar o UISTATE de ambas as janelas. Para obter mais informações, consulte WM_CHANGEUISTATE e WM_UPDATEUISTATE.

Erros ou comportamentos inesperados poderão ocorrer se hWndNewParent e hWndChild estiverem em execução em diferentes modos de reconhecimento de DPI. A tabela a seguir descreve esse comportamento:

Operação Windows 8.1 Windows 10 (1607 e anterior) Windows 10 (1703 e posterior)
SetParent (In-Proc) N/D Redefinição forçada (do processo atual) Falha (ERROR_INVALID_STATE)
SetParent (Cross-Proc) Redefinição forçada (do processo da janela filho) Redefinição forçada (do processo da janela filho) Redefinição forçada (do processo da janela filho)
 

Para obter mais informações sobre o reconhecimento de DPI, consulte a documentação do Windows High DPI.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-window-l1-1-0 (introduzido em Windows 8)

Confira também

Conceitual

GetParent

Referência

Windows