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 矩形中的實際插入點,請執行下列步驟。
- 呼叫 GetKeyboardLayout 以擷取目前的輸入語言。
- 根據目前的輸入語言,判斷用於數據指標的字元。
- 針對字型使用 Sans Serif 呼叫 CreateFont 、 rcCaret 所提供的高度,以及的
zero
寬度。 若為 fnWeight,請呼叫SystemParametersInfo(SPI_GETCARETWIDTH, 0, pvParam, 0)
。 如果 pvParam 大於 1,請將 fnWeight 設定為 700,否則將 fnWeight 設定為 400。 - 選取字型到裝置內容 (DC) ,並使用 GetCharABCWidths 取得
B
適當游標字元的寬度。 - 將
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) 中引進 |
另請參閱
概念
參考