Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Traz o thread que criou a janela especificada para o primeiro plano e ativa a janela. A entrada do teclado é direcionada para a janela e várias indicações visuais são alteradas para o usuário. O sistema atribui uma prioridade ligeiramente maior ao thread que criou a janela em primeiro plano do que a outros threads.
Sintaxe
BOOL SetForegroundWindow(
[in] HWND hWnd
);
Parâmetros
[in] hWnd
Tipo: HWND
Um identificador para a janela que deve ser ativado e trazido para o primeiro plano.
Valor de retorno
Tipo: BOOL
Se a janela tiver sido trazida para o primeiro plano, o valor retornado não será zero.
Se a janela não tiver sido trazida para o primeiro plano, o valor retornado será zero.
Observações
O sistema restringe quais processos podem definir a janela de primeiro plano. Um processo pode definir a janela de primeiro plano chamando SetForegroundWindow somente se:
- Todas as seguintes condições são verdadeiras:
- O processo de chamada pertence a um aplicativo da área de trabalho, não a um aplicativo UWP ou a um aplicativo da Windows Store projetado para Windows 8 ou 8.1.
- O processo de primeiro plano não desabilitou as chamadas para SetForegroundWindow por uma chamada anterior para a função LockSetForegroundWindow .
- Nenhum menu está ativo.
- Além disso, pelo menos uma das seguintes condições é verdadeira:
- O tempo limite de bloqueio em primeiro plano expirou (consulte SPI_GETFOREGROUNDLOCKTIMEOUT no SystemParametersInfo).
- O processo de chamada é o processo em primeiro plano.
- O processo de chamada foi iniciado pelo processo em primeiro plano.
- No momento, não há nenhuma janela de primeiro plano e, portanto, nenhum processo em primeiro plano.
- O processo de chamada recebeu o último evento de entrada.
- O processo de primeiro plano ou o processo de chamada está sendo depurado.
É possível que um processo seja negado o direito de definir a janela de primeiro plano, mesmo que ela atenda a essas condições.
Um aplicativo não pode forçar uma janela para o primeiro plano enquanto o usuário está trabalhando com outra janela. Em vez disso, o Windows exibe o botão da barra de tarefas da janela para notificar o usuário.
Um processo que pode definir a janela de primeiro plano pode habilitar outro processo para definir a janela de primeiro plano chamando a função AllowSetForegroundWindow . O processo especificado pelo parâmetro dwProcessId para AllowSetForegroundWindow perde a capacidade de definir a janela de primeiro plano na próxima vez que o usuário gerar entrada, a menos que a entrada seja direcionada para esse processo ou na próxima vez que um processo chamar AllowSetForegroundWindow, a menos que o mesmo processo seja especificado como na chamada anterior para AllowSetForegroundWindow.
O processo em primeiro plano pode desabilitar chamadas para SetForegroundWindow chamando a função LockSetForegroundWindow .
Example
O exemplo de código a seguir demonstra o uso de SetForegroundWindow
// If the window is invisible we will show it and make it topmost without the
// foreground focus. If the window is visible it will also be made the
// topmost window without the foreground focus. If wParam is TRUE then
// for both cases the window will be forced into the foreground focus
if (uMsg == m_ShowStageMessage) {
BOOL bVisible = IsWindowVisible(hwnd);
SetWindowPos(hwnd, HWND_TOP, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW |
(bVisible ? SWP_NOACTIVATE : 0));
// Should we bring the window to the foreground
if (wParam == TRUE) {
SetForegroundWindow(hwnd);
}
return (LRESULT) 1;
}
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Windows 2000 Professional [somente aplicativos da área de trabalho] |
| Servidor mínimo compatível | Windows 2000 Server [somente aplicativos da área de trabalho] |
| da Plataforma de Destino |
Windows |
| Header | winuser.h (inclua Windows.h) |
| Library | User32.lib |
| de DLL |
User32.dll |
| Conjunto de API | ext-ms-win-ntuser-window-l1-1-0 (introduzido no Windows 8) |
Consulte também
Conceitual
Referência