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 사각형의 실제 삽입 지점을 얻으려면 다음 단계를 수행합니다.
- GetKeyboardLayout을 호출하여 현재 입력 언어를 검색합니다.
- 현재 입력 언어에 따라 커서에 사용되는 문자를 결정합니다.
- 글꼴, rcCaret에서 제공한 높이 및 너비
zero
에 대해 Sans Serif를 사용하여 CreateFont를 호출합니다. fnWeight의 경우 를 호출합니다SystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0)
. pvParam이 1보다 크면 fnWeight를 700으로 설정하고, 그렇지 않으면 fnWeight를 400으로 설정합니다. - 디바이스 컨텍스트(DC)에 글꼴을 선택하고 GetCharABCWidths 를 사용하여 적절한 커서 문자의 너비를 가져옵니다
B
. -
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 소개) |
추가 정보
개념
참조