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
Referência