다음을 통해 공유


GetGUIThreadInfo 함수(winuser.h)

활성 창 또는 지정된 GUI 스레드에 대한 정보를 검색합니다.

구문

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

매개 변수

[in] idThread

형식:DWORD

정보를 검색할 스레드의 식별자입니다. 이 값을 검색하려면 GetWindowThreadProcessId 함수를 사용합니다. 이 매개 변수가 NULL이면 함수는 포그라운드 스레드에 대한 정보를 반환합니다.

[in, out] pgui

형식: LPGUITHREADINFO

스레드를 설명하는 정보를 수신하는 GUITHREADINFO 구조체에 대한 포인터입니다. 이 함수를 호출하기 전에 cbSize 멤버를 로 sizeof(GUITHREADINFO) 설정해야 합니다.

반환 값

형식: BOOL

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 함수는 활성 창이 호출 프로세스에 의해 소유되지 않은 경우에도 성공합니다. 지정된 스레드가 없거나 입력 큐가 있는 경우 함수가 실패합니다.

이 함수는 스레드에 대한 컨텍스트 외부 정보를 검색하는 데 유용합니다. 검색된 정보는 애플리케이션이 자체에 대한 정보를 검색한 경우와 동일합니다.

편집 컨트롤의 경우 반환된 rcCaret 사각형에는 텍스트 방향 및 안쪽 여백에 대한 추가 정보가 포함됩니다. 따라서 커서의 올바른 위치를 제공하지 않을 수 있습니다. Sans Serif 글꼴은 커서에 4개의 문자를 사용합니다.

커서 문자 유니코드 코드 포인트
CURSOR_LTR 0xf00c
CURSOR_RTL 0xf00d
CURSOR_THAI 0xf00e
CURSOR_USA 0xfff(연결된 문자 모양이 없는 표식 값)
 

rcCaret 사각형의 실제 삽입 지점을 얻으려면 다음 단계를 수행합니다.

  1. GetKeyboardLayout을 호출하여 현재 입력 언어를 검색합니다.
  2. 현재 입력 언어에 따라 커서에 사용되는 문자를 결정합니다.
  3. 글꼴, rcCaret에서 제공한 높이 및 너비zero에 대해 Sans Serif를 사용하여 CreateFont를 호출합니다. fnWeight의 경우 를 호출합니다SystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0). pvParam이 1보다 크면 fnWeight를 700으로 설정하고, 그렇지 않으면 fnWeight를 400으로 설정합니다.
  4. 디바이스 컨텍스트(DC)에 글꼴을 선택하고 GetCharABCWidths 를 사용하여 적절한 커서 문자의 너비를 가져옵니다 B .
  5. B rcCaret에 너비를 추가합니다.왼쪽에서 실제 삽입 지점을 가져옵니다.

함수는 창이 활성화되지 않는 경우와 같이 포그라운드 스레드에 대한 정보를 검색하기 위해 호출할 때 GUITHREADINFO 구조에서 유효한 창 핸들을 반환하지 않을 수 있습니다.

DPI 가상화

GUITHREADINFO 구조체의 rcCaret 사각형에 반환된 좌표는 caret와 연결된 창 측면에서 논리적 좌표입니다. 호출 스레드의 모드로 가상화되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-window-l1-1-1(Windows 8.1 소개)

추가 정보

개념

기스레딘포

GetCursorInfo

GetWindowThreadProcessId

참조

Windows