Compartir a través de


Función GetGUIThreadInfo (winuser.h)

Recupera información sobre la ventana activa o un subproceso de GUI especificado.

Sintaxis

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

Parámetros

[in] idThread

Tipo: DWORD

Identificador del subproceso para el que se va a recuperar información. Para recuperar este valor, use la función GetWindowThreadProcessId . Si este parámetro es NULL, la función devuelve información para el subproceso en primer plano.

[in, out] pgui

Tipo: LPGUITHREADINFO

Puntero a una estructura GUITHREADINFO que recibe información que describe el subproceso. Tenga en cuenta que debe establecer el miembro cbSize en sizeof(GUITHREADINFO) antes de llamar a esta función.

Valor devuelto

Tipo: BOOL

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Esta función se realiza correctamente incluso si la ventana activa no es propiedad del proceso de llamada. Si el subproceso especificado no existe o tiene una cola de entrada, se producirá un error en la función.

Esta función es útil para recuperar información fuera del contexto sobre un subproceso. La información recuperada es la misma que si una aplicación recuperó la información sobre sí misma.

Para un control de edición, el rectángulo rcCaret devuelto contiene el símbolo de intercalación más información sobre la dirección del texto y el relleno. Por lo tanto, puede que no proporcione la posición correcta del cursor. La fuente Sans Serif usa cuatro caracteres para el cursor:

Carácter de cursor punto de código Unicode
CURSOR_LTR 0xf00c
CURSOR_RTL 0xf00d
CURSOR_THAI 0xf00e
CURSOR_USA 0xfff (se trata de un valor de marcador sin glifo asociado)
 

Para obtener el punto de inserción real en el rectángulo rcCaret , realice los pasos siguientes.

  1. Llame a GetKeyboardLayout para recuperar el idioma de entrada actual.
  2. Determine el carácter usado para el cursor, en función del idioma de entrada actual.
  3. Llame a CreateFont mediante Sans Serif para la fuente, el alto dado por rcCaret y un ancho de zero. Para fnWeight, llame a SystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0). Si pvParam es mayor que 1, establezca fnWeight en 700; de lo contrario, establezca fnWeight en 400.
  4. Seleccione la fuente en un contexto de dispositivo (DC) y use GetCharABCWidths para obtener el B ancho del carácter de cursor adecuado.
  5. Agregue el B ancho a rcCaret.izquierda para obtener el punto de inserción real.

Es posible que la función no devuelva identificadores de ventana válidos en la estructura GUITHREADINFO cuando se llama para recuperar información para el subproceso en primer plano, como cuando una ventana pierde la activación.

Virtualización de PPP

Las coordenadas devueltas en la rect de rcCaret de la estructura GUITHREADINFO son coordenadas lógicas en términos de la ventana asociada al símbolo de intercalación. No se virtualizan en el modo del subproceso que realiza la llamada.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-window-l1-1-1 (introducido en Windows 8.1)

Consulte también

Conceptual

GUITHREADINFO

GetCursorInfo

GetWindowThreadProcessId

Referencia

Windows