SetWindowPos
9/9/2008
Essa função altera o tamanho, posição e z-ordem de um filho, pop-up ou janela de alto nível. Filho, pop-up e de alto nível Windows são ordenados de acordo com sua aparência na Tela. A janela superior recebe a classificação mais alta e é a primeira janela na z-ordem.
Syntax
BOOL SetWindowPos(
HWND hWnd,
HWND hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
UINT uFlags
);
Parameters
- hWnd
[no] Identificador para a janela.
hWndInsertAfter
[no] Identificador para a janela para preceder a janela posicionada na z-ordem. Este parâmetro deve ser um identificador janela ou um do seguinte valores.Valor Descrição HWND_BOTTOM
Coloca a janela na inferior de z-ordem. 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 inferior de todas as outras janelas.
HWND_NOTOPMOST
Coloca a janela Windows acima de todos os não-primeiro (isto é, por trás todas as janelas de nível superior). Este sinalizador não terá nenhum efeito se a janela já é uma janela non-topmost. Este valor não é com suporte em Windows CE 1.0 e 1.01.
HWND_TOP
Coloca a janela na parte superior de z-ordem.
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. Este valor não é com suporte em Windows CE 1.0 e 1.01.
Para obter mais informações sobre como este parâmetro é usado, consulte a seção " Comentários ".
- X
[no] Especifica a nova posição do lado esquerdo da janela, no cliente coordenadas.
- Y
[no] Especifica a nova posição da parte superior da janela, no cliente coordenadas.
- CX
[no] Especifica a nova largura da janela, em pixels.
- CY
[no] Especifica a nova altura da janela, em pixels.
uFlags
[no] Especifica o posicionamento e dimensionamento janela Sinalizadores. Este parâmetro pode ser uma combinação dos seguinte valores.Valor Descrição SWP_DRAWFRAME
Desenha um quadro (definido na descrição classe da janela de) em torno de janela. Este valor não é com suporte em Windows CE 1.0 e 1.01.
SWP_FRAMECHANGED
Causas o sistema operacional para recalcular o tamanho e posição da área de cliente Windows, mesmo se o tamanho janela não está sendo alterado. Se este sinalizador não for especificado, a área cliente é recalculada somente quando o tamanho ou posição da janela é alterada.
SWP_HIDEWINDOW
Oculta a janela.
SWP_NOACTIVATE
Não ativa a janela. Se este sinalizador não estiver definida, a janela é ativada e movida para a parte superior de ambos o GRUPO de nível superior ou non-topmost (depending on a configuração do hWndInsertAfter parâmetro).
SWP_NOCOPYBITS
Descartará todo o conteúdo da área de cliente. Se este sinalizador não for especificado, o válido conteúdo da área de cliente é salvas e copiados voltar para a área cliente depois que a janela for dimensionada ou reposicionada. Este valor não é com suporte no Windows CE 2.10 e posterior.
SWP_NOMOVE
Mantém a atual posição (ignora o X e Y Parâmetros).
SWP_NOOWNERZORDER
Não alteração posição do janela proprietária na z-ordem.
SWP_NOREPOSITION
Mesmo que o sinalizador SWP_NOOWNERZORDER.
SWP_NOSIZE
Mantém a atual tamanho (ignora o CX e CY Parâmetros).
SWP_NOZORDER
Mantém a atual z-ordem (ignora o hWndInsertAfter parâmetro).
SWP_SHOWWINDOW
Exibe a janela.
Return Value
Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
Se a janela especificada é uma janela de alto nível visível e o sinalizador SWP_NOACTIVATE não é especificado, essa função ativa a janela. Se a janela é o atualmente ativo e o sinalizador SWP_HIDEWINDOW for especificada, a ativação é passada para outra janela de alto nível visível.
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 posição de uma janela na z-ordem de forma que ele é acima todas as janelas de nível superior existentes. Quando uma janela non-topmost é feita de nível superior, seus proprietário janelas também são feitas de nível superior. No entanto, seus proprietários, não são alterados.
Se nem o SWP_NOACTIVATE SWP_NOZORDER sinalizador for especificado (ou seja, quando o aplicativo solicita que uma janela simultaneamente ser ativado e sua posição na z-ordem alterada), o valor especificado em hWndInsertAfter é usado somente no seguinte circunstâncias.
- Sinalizador a HWND_TOPMOST ou HWND_NOTOPMOST é especificado na hWndInsertAfter.
- A janela identificada por hWnd é a janela ativa.
Quando você definir o sinalizador SWP_FRAMECHANGED in a nFlags parâmetro para esta função, Windows Embedded CE redesenha o inteiro não-área cliente da janela, que pode alteração o tamanho da área de cliente. Essa é a única maneira para get o non-client_area para ser recalculada e é geralmente usado depois que você tenha alterado o estilo janela por chamado SetWindowLong.
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.
SetWindowPos Sempre faz com que uma mensagem WM_WINDOWPOSCHANGED sejam enviadas para a janela. Os sinalizadores passados nesta mensagem são exatamente os mesmos que aqueles passada para a função. Há outras mensagens são enviadas por essa função.
Se uma janela de proprietário foi criada com o estilo WS_OVERLAPPED, SetWindowPos Usa as coordenadas janela pai para reposicionamento-lo. Se a janela de proprietário foi criada usando o estilo WS_POPUP, ele é reposicionado usando coordenadas Tela.
Um aplicativo não é possível ativar um janela inativa sem também colocando-lo para o parte superior da z-ordem. Aplicativos podem alteração posição da janela um ativado na z-ordem sem restrições, ou ele pode ativar uma janela e, em seguida, mover para o parte superior das janelas de nível superior ou non-topmost.
Se uma janela de nível superior é reposicionada para a inferior (HWND_BOTTOM) de z-ordem ou após qualquer janela non-topmost, não é de nível superior. Quando uma janela de nível superior é feita sem primeira, seus proprietários e suas janelas de proprietário também são feitas as janelas não-superior.
Uma janela non-topmost pode ter uma janela de nível superior, mas não o inverter ocorrer. Qualquer janela (por exemplo, uma caixa diálogo) pertencente uma janela de nível superior é feita uma janela de nível superior, para garantir que todos os pertencentes janelas fique acima seu proprietário.
Se um aplicativo não estiver no primeiro plano e deve estar no primeiro plano, ele deve chamar o SetForegroundWindow função.
Requirements
Header | winuser.h |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
MoveWindow
SetForegroundWindow
SetWindowLong
WM_WINDOWPOSCHANGED
Windows Functions