GetWindowLongA 関数 (winuser.h)

指定したウィンドウに関する情報を取得します。 また、 関数は、指定したオフセットにある 32 ビット (DWORD) 値を追加のウィンドウ メモリに取得します。

メモ ポインターまたはハンドルを取得する場合、この関数は GetWindowLongPtr 関数に置き換えられます。 (ポインターとハンドルは、32 ビット Windows では 32 ビット、64 ビット Windows では 64 ビットです)。32 ビットバージョンと 64 ビットバージョンの両方の Windows と互換性のあるコードを記述するには、 GetWindowLongPtr を使用します

 

構文

LONG GetWindowLongA(
  [in] HWND hWnd,
  [in] int  nIndex
);

パラメーター

[in] hWnd

型: HWND

ウィンドウへのハンドルと、ウィンドウが属するクラスを間接的に指定します。

[in] nIndex

型: int

取得する値への 0 から始まるオフセット。 有効な値は、余分なウィンドウ メモリのバイト数から 4 を引いた範囲の 0 です。たとえば、12 バイト以上の余分なメモリを指定した場合、値 8 は 3 番目の 32 ビット整数のインデックスになります。 その他の値を取得するには、次のいずれかの値を指定します。

意味
GWL_EXSTYLE
-20
拡張ウィンドウ スタイルを取得します。
GWL_HINSTANCE
-6
アプリケーション インスタンスへのハンドルを取得します。
GWL_HWNDPARENT
-8
親ウィンドウへのハンドル (存在する場合) を取得します。
GWL_ID
-12
ウィンドウの識別子を取得します。
GWL_STYLE
-16
ウィンドウ スタイルを取得します。
GWL_USERDATA
-21
ウィンドウに関連付けられているユーザー データを取得します。 このデータは、ウィンドウを作成したアプリケーションで使用するためのものです。 その値は、最初は 0 です。
GWL_WNDPROC
-4
ウィンドウ プロシージャのアドレス、またはウィンドウ プロシージャのアドレスを表すハンドルを取得します。 ウィンドウ プロシージャを呼び出すには、 CallWindowProc 関数を使用する必要があります。
 

hWnd パラメーターがダイアログ ボックスを識別する場合は、次の値も使用できます。

意味
DWL_DLGPROC
DWLP_MSGRESULT + sizeof(LRESULT)
ダイアログ ボックス プロシージャのアドレス、またはダイアログ ボックス プロシージャのアドレスを表すハンドルを取得します。 ダイアログ ボックス プロシージャを呼び出すには、 CallWindowProc 関数を使用する必要があります。
DWL_MSGRESULT
0
ダイアログ ボックス プロシージャで処理されたメッセージの戻り値を取得します。
DWL_USER
DWLP_DLGPROC + sizeof(DLGPROC)
ハンドルやポインターなど、アプリケーションにプライベートな追加情報を取得します。

戻り値

型: LONG

関数が成功した場合、戻り値は要求された値です。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

SetWindowLong が以前に呼び出されていない場合、GetWindowLong は余分なウィンドウまたはクラス メモリ内の値に対して 0 を返します。

注釈

RegisterClassEx 関数で使用される WNDCLASSEX 構造体の cbWndExtra メンバーに 0 以外の値を指定して、追加のウィンドウ メモリを予約します。

例については、「 子ウィンドウの作成、列挙、およびサイズ変更」を参照してください。

注意

winuser.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetWindowLong を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください

CallWindowProc

概念

GetWindowLongPtr

リファレンス

RegisterClassEx

SetParent

SetWindowLong

WNDCLASS

ウィンドウ クラス