SetWindowPos

O SetWindowPos função altera o tamanho, posição e ordem z de uma janela filho, pop-up, ou de nível superior. Criança, janelas pop-up e de nível superior são ordenadas de acordo com sua aparência na tela. A janela superior recebe a classificação mais alta e é a primeira janela na ordem z.

 (BOOL SetWindowPos HWND  hWnd, / / identificador para janelaHWNDhWndInsertAfter, / / lidar com a ordem de colocaçãoint X, / / horizontal posiçãoint Y, / / vertical posição int cx, // width int cy, // heightUINTuFlags / / janela posicionamento sinalizadores);
 

Parâmetros

hWnd
Identificador para a janela.
hWndInsertAfter
Identificador para a janela para preceder a janela posicionada na ordem Z. Este parâmetro deve ser um identificador janela ou um dos seguintes valores:
Valor Significado
HWND_BOTTOM Coloca a janela na parte inferior da ordem Z. Se a pasta hWnd parâmetro identifica uma janela de nível superior, a janela perde seu status de nível superior e é colocada na parte inferior de todas as outras janelas.
HWND_NOTOPMOST Coloca a janela windows acima de todos os não-superior (ou seja, por trás de todas as janelas de nível superior). Este sinalizador não tem efeito se a janela já está uma janela non-topmost.
HWND_TOP Coloca a janela na parte superior da ordem z.
HWND_TOPMOST Coloca a janela windows acima de todos os não-superior. A janela mantém sua posição superior mesmo quando ela é desativada.

Para obter mais informações sobre como este parâmetro é usado, consulte a seguinte seção Comentários.

X
Especifica a Novo posição do Esquerda laterais da janela, nas coordenadas do cliente.
Y
Especifica a nova posição da parte superior da janela, nas coordenadas do cliente.
cx
Especifica a Novo largura da janela, em pixels.
cy
Especifica a Novo altura da janela, em pixels.
uFlags
Especifica a janela de dimensionamento e posicionamento sinalizadores. Este parâmetro pode ser uma combinação dos seguintes valores:
Valor Significado
SWP_ASYNCWINDOWPOS Se o thread de chamada não possui a janela, o sistema envia a solicitação para o segmento que possui a janela. Isso impede que o thread de chamada de bloquear sua execução enquanto outros threads processam a solicitação.
SWP_DEFERERASE Impede a geração da mensagem WM_SYNCPAINT.
SWP_DRAWFRAME Desenha um quadro (definido na descrição de classe da janela) próximo a janela.
SWP_FRAMECHANGED Envia uma mensagem WM_NCCALCSIZE à janela, mesmo se o tamanho da janela não está sendo alterado. Se este sinalizador não for especificado, WM_NCCALCSIZE é enviada somente quando o tamanho da janela está sendo alterado.
SWP_HIDEWINDOW Oculta a janela.
SWP_NOACTIVATE Não ativa a janela. Se este sinalizador não estiver definido, a janela é ativada e mudou-se para a parte superior do grupo nível superior ou non-topmost (depending on a configuração de hWndInsertAfter parâmetro).
SWP_NOCOPYBITS Descarta todo o conteúdo da área cliente. Se este sinalizador não for especificado, o válido conteúdo da área cliente é salvas e copiado voltar para a área cliente depois que a janela for dimensionada ou reposicionada.
SWP_NOMOVE Mantém a posição atual (ignora o x e y parâmetros).
SWP_NOOWNERZORDER Não alterar a posição da janela de proprietário na ordem z.
SWP_NOREDRAW Não redesenhar as alterações. Se este sinalizador estiver definido, não redesenho de qualquer espécie ocorre. Isto aplica-se à área do cliente, a área não cliente (incluindo a barra de título e barras de rolagem), e qualquer parte da janela pai descoberta como resultado de janela que está sendo movida. Quando este sinalizador estiver definido, o aplicativo deve explicitamente invalidar ou redesenhar as partes da janela e a janela pai que precisa redesenho.
SWP_NOREPOSITION Mesmo que o sinalizador SWP_NOOWNERZORDER.
SWP_NOSENDCHANGINGIMPEDE Impede que a janela de recebimento da mensagem WM_WINDOWPOSCHANGING.
SWP_NOSIZE Mantém o tamanho atual (ignora o cx e cy parâmetros).
SWP_NOZORDER Mantém a ordem z atual (ignora o hWndInsertAfter parâmetro).
SWP_SHOWWINDOW Exibe a janela.

Retornar valores

Se a função for bem-sucedido, o valor de retorno é diferente de zero.

Se a função falhar, o valor de retorno é zero. Para informações de erro estendidas get, chamar GetLastError.

Observações

Se o sinalizador SWP_SHOWWINDOW ou SWP_HIDEWINDOW for definido, a janela não pode ser movida ou dimensionada.

Se você tiver alterado determinados dados janela usando SetWindowLong, você deve chamar SetWindowPos para que as alterações tenham efeito. Use a seguinte combinação para uFlags: SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED.

Uma janela pode ser feita uma janela de nível superior por configuração de hWndInsertAfter parâmetro para HWND_TOPMOST e garantir que o sinalizador SWP_NOZORDER não está definido, ou por configuração a posição de uma janela na ordem Z, para que fique acima de quaisquer janelas de nível superior existentes. Quando uma janela non-topmost é feita na extremidade superior, suas janelas de propriedade são também feitas na extremidade superior. Seus proprietários, no entanto, não são alterados.

Se o sinalizador SWP_NOZORDER nem SWP_NOACTIVATE é especificado (isto é, quando o aplicativo solicita que uma janela seja ativado simultaneamente e mudou sua posição na ordem Z), o valor especificado na hWndInsertAfter é usado somente nas seguintes circunstâncias:

Um aplicativo não é possível ativar uma janela inativa sem também trazê-lo para o topo da ordem Z. Aplicativos podem alteração posição da janela um ativado na ordem z sem restrições, ou ele pode ativar uma janela e, em seguida, movê-lo para a parte superior das janelas de nível superior ou non-topmost.

Se uma janela de nível superior é reposicionada para baixo (HWND_BOTTOM) da ordem z ou após qualquer janela non-topmost, não se encontra na extremidade superior. Quando uma janela de nível superior é feita não-superior, seus proprietários e suas janelas de propriedade são também feitas windows não-superior.

Uma janela non-topmost pode ter uma janela de nível superior, mas o inverso não pode ocorrer. Qualquer janela (por exemplo, uma caixa de diálogo) pertencente uma janela de nível superior é feita uma janela de nível superior, para garantir que todas as propriedade windows ficar acima dos respectivos proprietários.

Se um aplicativo não está em primeiro plano e deve estar em primeiro plano, ele deve chamar o SetForegroundWindow função.

Windows CE: Se esta é uma janela de nível superior visível, e a bandeira SWP_NOACTIVATE não for especificada, esta função irá activar a janela. Se esta é a janela ativa no momento, e a bandeira SWP_NOACTIVATE ou o sinalizador SWP_HIDEWINDOW for especificado, a ativação é passada para outra janela de nível superior visível.

Quando você definir o sinalizador SWP_FRAMECHANGED in o nFlags parâmetro para esta função, o Windows CE redesenha toda a área de não cliente da janela, que pode alterar o tamanho da área cliente. Esta é a única maneira de obter a área de cliente não carecem de ser recalculados e normalmente é usada após uma você mudou o estilo de janela por chamado SetWindowLong.

SetWindowPos sempre fará com que uma mensagem WM_WINDOWPOSCHANGED sejam enviadas para a janela. Os sinalizadores passados nesta mensagem são exatamente os mesmos que os passados para a função. Há outras mensagens são enviadas por essa função.

Windows CE 1.0 não suporta o HWND_TOPMOST e HWND_NOTOPMOST constantes na hwndInsertAfter parâmetro.

Windows CE 1.0 não suporta os sinalizadores SWP_DRAWFRAME ou SWP_NOCOPYBITS na paramete fuFlags.

QuickInfo

nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.

Ver também

Visão geral sobre Windows, funções de janela, MoveWindow, SetActiveWindow, SetForegroundWindow

Index