Função GetGUIThreadInfo (winuser.h)

Recupera informações sobre a janela ativa ou um thread de GUI especificado.

Sintaxe

BOOL GetGUIThreadInfo(
  [in]      DWORD          idThread,
  [in, out] PGUITHREADINFO pgui
);

Parâmetros

[in] idThread

Tipo: DWORD

O identificador do thread para o qual as informações devem ser recuperadas. Para recuperar esse valor, use a função GetWindowThreadProcessId . Se esse parâmetro for NULL, a função retornará informações para o thread em primeiro plano.

[in, out] pgui

Tipo: LPGUITHREADINFO

Um ponteiro para uma estrutura GUITHREADINFO que recebe informações que descrevem o thread. Observe que você deve definir o membro cbSize como sizeof(GUITHREADINFO) antes de chamar essa função.

Retornar valor

Tipo: BOOL

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Essa função terá êxito mesmo se a janela ativa não pertencer ao processo de chamada. Se o thread especificado não existir ou tiver uma fila de entrada, a função falhará.

Essa função é útil para recuperar informações fora do contexto sobre um thread. As informações recuperadas são as mesmas que se um aplicativo recuperasse as informações sobre si mesmo.

Para um controle de edição, o retângulo rcCaret retornado contém o cursor mais informações sobre direção e preenchimento de texto. Portanto, ele pode não dar a posição correta do cursor. A fonte Sans Serif usa quatro caracteres para o cursor:

Caractere de cursor Ponto de código Unicode
CURSOR_LTR 0xf00c
CURSOR_RTL 0xf00d
CURSOR_THAI 0xf00e
CURSOR_USA 0xfff (esse é um valor de marcador sem glifo associado)
 

Para obter o ponto de inserção real no retângulo rcCaret , execute as etapas a seguir.

  1. Chame GetKeyboardLayout para recuperar o idioma de entrada atual.
  2. Determine o caractere usado para o cursor, com base no idioma de entrada atual.
  3. Chame CreateFont usando Sans Serif para a fonte, a altura fornecida por rcCaret e uma largura de zero. Para fnWeight, chame SystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0). Se pvParam for maior que 1, defina fnWeight como 700, caso contrário, defina fnWeight como 400.
  4. Selecione a fonte em um DC (contexto de dispositivo) e use GetCharABCWidths para obter a B largura do caractere de cursor apropriado.
  5. Adicione a B largura ao rcCaret.esquerda para obter o ponto de inserção real.

A função pode não retornar identificadores de janela válidos na estrutura GUITHREADINFO quando chamado para recuperar informações para o thread em primeiro plano, como quando uma janela está perdendo a ativação.

Virtualização de DPI

As coordenadas retornadas na rect rcCaret do struct GUITHREADINFO são coordenadas lógicas em termos da janela associada ao cursor. Eles não são virtualizados no modo do thread de chamada.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-window-l1-1-1 (introduzido em Windows 8.1)

Confira também

Conceitual

GUITHREADINFO

GetCursorInfo

GetWindowThreadProcessId

Referência

Windows