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

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

即使活動視窗不是由呼叫進程所擁有,此函式仍會成功。 如果指定的線程不存在或有輸入佇列,函式將會失敗。

此函式適用於擷取有關線程的內容外資訊。 擷取的信息與應用程式擷取本身的相關信息相同。

針對編輯控件,傳回的 rcCaret 矩形包含插入號加上文字方向和邊框間距的資訊。 因此,它可能不會提供數據指標的正確位置。 Sans Serif 字型會針對游標使用四個字元:

數據指標字元 Unicode 字碼指標
CURSOR_LTR 0xf00c
CURSOR_RTL 0xf00d
CURSOR_THAI 0xf00e
CURSOR_USA 0xfff (这是没有相关联字符的标记值)
 

若要取得 rcCaret 矩形中的實際插入點,請執行下列步驟。

  1. 呼叫 GetKeyboardLayout 以擷取目前的輸入語言。
  2. 根據目前的輸入語言,判斷用於數據指標的字元。
  3. 針對字型使用 Sans Serif 呼叫 CreateFontrcCaret 所提供的高度,以及的 zero寬度。 若為 fnWeight,請呼叫 SystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0)。 如果 pvParam 大於 1,請將 fnWeight 設定為 700,否則將 fnWeight 設定為 400。
  4. 選取字型到裝置內容 (DC) ,並使用 GetCharABCWidths 取得 B 適當游標字元的寬度。
  5. B寬度新增至 rcCaret。向左取得實際的插入點。

呼叫 以擷取前景線程的資訊時,函式可能不會傳回 GUITHREADINFO 結構中的有效視窗句柄,例如當視窗遺失啟用時。

DPI 虛擬化

GUITHREADINFO 結構 rcCaret rect 中傳回的座標是與插入號相關聯的視窗邏輯座標。 它們不會虛擬化為呼叫線程的模式。

規格需求

需求
最低支援的用戶端 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) 中引進

另請參閱

概念

GUITHREADINFO

GetCursorInfo

GetWindowThreadProcessId

參考

Windows