Função DeferWindowPos (winuser.h)
Atualizações a estrutura de posição de várias janelas especificada para a janela especificada. Em seguida, a função retorna um identificador para a estrutura atualizada. A função EndDeferWindowPos usa as informações nessa estrutura para alterar a posição e o tamanho de várias janelas simultaneamente. A função BeginDeferWindowPos cria a estrutura .
Sintaxe
HDWP DeferWindowPos(
[in] HDWP hWinPosInfo,
[in] HWND hWnd,
[in, optional] HWND hWndInsertAfter,
[in] int x,
[in] int y,
[in] int cx,
[in] int cy,
[in] UINT uFlags
);
Parâmetros
[in] hWinPosInfo
Tipo: HDWP
Um identificador para uma estrutura de posição de várias janelas que contém informações de tamanho e posição para uma ou mais janelas. Essa estrutura é retornada por BeginDeferWindowPos ou pela chamada mais recente para DeferWindowPos.
[in] hWnd
Digite: HWND
Um identificador para a janela para a qual as informações de atualização são armazenadas na estrutura. Todas as janelas em uma estrutura de posição de várias janelas devem ter o mesmo pai.
[in, optional] hWndInsertAfter
Digite: HWND
Um identificador para a janela que precede a janela posicionada na ordem Z. Esse parâmetro deve ser um identificador de janela ou um dos valores a seguir. Esse parâmetro será ignorado se o sinalizador SWP_NOZORDER estiver definido no parâmetro uFlags .
[in] x
Tipo: int
A coordenada X do canto esquerdo superior da janela.
[in] y
Tipo: int
A coordenada Y do canto esquerdo superior da janela.
[in] cx
Tipo: int
A nova largura da janela, em pixels.
[in] cy
Tipo: int
A nova altura da janela, em pixels.
[in] uFlags
Tipo: UINT
Uma combinação dos valores a seguir que afetam o tamanho e a posição da janela.
Valor | Significado |
---|---|
|
Desenha um quadro (definido na descrição da classe da janela) ao redor da janela. |
|
Envia uma mensagem WM_NCCALCSIZE para a janela, mesmo que o tamanho da janela não esteja sendo alterado. Se esse sinalizador não for especificado, WM_NCCALCSIZE será enviado somente quando o tamanho da janela estiver sendo alterado. |
|
Oculta a janela. |
|
Não ativa a janela. Se esse sinalizador não estiver definido, a janela será ativada e movida para a parte superior do grupo mais superior ou não superior (dependendo da configuração do parâmetro hWndInsertAfter ). |
|
Descarta todo o conteúdo da área do cliente. Se esse sinalizador não for especificado, o conteúdo válido da área do cliente será salvo e copiado de volta para a área do cliente depois que a janela for dimensionada ou reposicionada. |
|
Mantém a posição atual (ignora os parâmetros x e y ). |
|
Não altera a posição da janela do proprietário na ordem Z. |
|
Não redesenha as alterações. Se esse sinalizador estiver definido, nenhum repositório de nenhum tipo ocorrerá. Isso se aplica à área do cliente, à área não cliente (incluindo a barra de título e as barras de rolagem) e a qualquer parte da janela pai descoberta como resultado da movimentação da janela. Quando esse sinalizador é definido, o aplicativo deve invalidar ou redesenhar explicitamente todas as partes da janela e da janela pai que precisem ser redesenhadas. |
|
O mesmo que o sinalizador SWP_NOOWNERZORDER . |
|
Impede que a janela receba a mensagem de WM_WINDOWPOSCHANGING . |
|
Retém o tamanho atual (ignora os parâmetros cx e cy ). |
|
Retém a ordem Z atual (ignora o parâmetro hWndInsertAfter ). |
|
Exibe a janela. |
Retornar valor
Tipo: HDWP
O valor retornado identifica a estrutura de posição de várias janelas – atualizada. O identificador retornado por essa função pode ser diferente do identificador passado para a função . O novo identificador que essa função retorna deve ser passado durante a próxima chamada para a função DeferWindowPos ou EndDeferWindowPos .
Se recursos insuficientes do sistema estiverem disponíveis para que a função tenha êxito, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Se uma chamada para DeferWindowPos falhar, o aplicativo deverá abandonar a operação de posicionamento de janela e não chamar EndDeferWindowPos.
Se SWP_NOZORDER não for especificado, o sistema colocará a janela identificada pelo parâmetro hWnd na posição após a janela identificada pelo parâmetro hWndInsertAfter . Se hWndInsertAfter for NULL ou HWND_TOP, o sistema colocará a janela hWnd na parte superior da ordem Z. Se hWndInsertAfter estiver definido como HWND_BOTTOM, o sistema colocará a janela hWnd na parte inferior da ordem Z.
Todas as coordenadas para janelas filho são relativas ao canto superior esquerdo da área do cliente da janela pai.
Uma janela pode ser feita em uma janela superior definindo hWndInsertAfter para o sinalizador HWND_TOPMOST e garantindo que o sinalizador de SWP_NOZORDER não esteja definido ou definindo a posição da janela na ordem Z para que ela esteja acima de qualquer janela superior existente. Quando uma janela não superior se torna superior, suas janelas de propriedade também se tornam superiores. Seus proprietários, no entanto, não são alterados.
Se nem o sinalizador SWP_NOACTIVATE nem SWP_NOZORDER for especificado (ou seja, quando o aplicativo solicitar que uma janela seja ativada simultaneamente e sua posição na ordem Z for alterada), o valor especificado em hWndInsertAfter será usado apenas nas seguintes circunstâncias:
- Nem o sinalizador HWND_TOPMOST nem HWND_NOTOPMOST é especificado em hWndInsertAfter.
- A janela identificada por hWnd não é a janela ativa.
Uma janela superior não será mais superior se for reposicionada para a parte inferior (HWND_BOTTOM) da ordem Z ou após qualquer janela não superior. Quando uma janela superior é feita não superior, seus proprietários e suas janelas de propriedade também são feitas janelas não superiores.
Uma janela não superior pode ter uma janela superior, mas não vice-versa. Qualquer janela (por exemplo, uma caixa de diálogo) de propriedade de uma janela superior é se torna uma janela superior para garantir que todas as janelas de propriedade permaneçam acima de seu proprietário.
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-4 (introduzido no Windows 10, versão 10.0.14393) |
Confira também
Conceitual
Referência