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);
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.
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. |
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.
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.
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.
Visão geral sobre Windows, funções de janela, MoveWindow, SetActiveWindow, SetForegroundWindow