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 つの文字を使用します。

カーソル文字 Unicode コード ポイント
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. 幅を BrcCaret に追加します。実際 の挿入ポイントを取得するには、左に移動します。

この関数は、ウィンドウがアクティブ化を失っているときなど、フォアグラウンド スレッドの情報を取得するために呼び出されたときに 、GUITHREADINFO 構造体で有効なウィンドウ ハンドルを返さない場合があります。

DPI 仮想化

GUITHREADINFO 構造体の rcCaret rect で返される座標は、キャレットに関連付けられたウィンドウの観点から論理的な座標です。 これらは、呼び出し元スレッドのモードに仮想化されません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-window-l1-1-1 (Windows 8.1で導入)

関連項目

概念

GUITHREADINFO

GetCursorInfo

GetWindowThreadProcessId

リファレンス

Windows