Compartilhar via


SetWindowPos

Windows Mobile SupportedWindows Embedded CE Supported

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