<Return[G]><Top>

GetWindowLong

Declare Function Api_GetWindowLong& Lib "user32" Alias "GetWindowLongA" (ByVal hWnd&, ByVal nIndex&)

Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

指定されたウィンドウに関する情報を取得する。拡張ウィンドウメモリ内の指定されたオフセット位置にある long データ(32 ビット値)も取得できる。
ポインタとハンドルの取得には、この関数に代わる関数として GetClassLongPtr 関数がある(ポインタとハンドルは、32 ビット Windows では 32 ビット、64 ビット Windows では 64 ビットである)。32 ビット Windows と 64 ビット Windows の両方と互換性のあるコードを記述するには、GetClassLongPtr 関数を使う。

パラメータ
hWnd
    ウィンドウのハンドルを指定する。クラスも間接的に指定したことになる(指定したウィンドウの属するクラスが使われる)。
nIndex
    取得する値の 0 から始まるオフセットを指定する。有効な値は、0 から拡張ウィンドウメモリのバイト数より 4 小さい値までである。

    たとえば、12 バイト以上の拡張ウィンドウメモリを持つクラスを指定した場合なら、8 を指定すると、3 番目の 32 ビット値が取得できる。

    拡張ウィンドウメモリ以外のデータを取得するときは、次の値のいずれかを指定する。

    値                                   

動作                                                                                                                                       

    GWL_EXSTYLE

拡張ウィンドウスタイルを取得する。

    GWL_STYLE

ウィンドウスタイル を取得する。

    GWL_WNDPROC

 

ウィンドウプロシージャのアドレス、またはウィンドウプロシージャのアドレスを示すハンドルを取得する。

取得したウィンドウプロシージャを呼び出すには、CallWindowProc 関数を使わなければならない。

    GWL_HINSTANCE

アプリケーションのインスタンスハンドルを取得する。

    GWL_HWNDPARENT

親ウィンドウがあれば、そのハンドルを取得する。

    GWL_ID

ウィンドウの ID を取得する。

    GWL_USERDATA

 

 

ウィンドウに関連付けられている 32 ビット値を取得する。

各ウィンドウは、それに対応する 32 ビット値を持っている。

この値は、ウィンドウを作成したアプリケーションが自由に使用できるもので、0 で初期化されている。

    hWnd パラメータで指定したウィンドウがダイアログボックスの場合は、次の値も指定できる。

    値                                   

動作                                                                                                                                       

    DWL_DLGPROC

 

 

ダイアログボックスプロシージャのアドレス、またはダイアログボックスプロシージャのアドレスを示すハンドルを取

得する。取得したダイアログボックスプロシージャを呼び出すには、CallWindowProc 関数を使わなければなら

ない。

    DWL_MSGRESULT

ダイアログボックスプロシージャ内で処理されたメッセージの戻り値を取得する。

    DWL_USER

ハンドルやポインタなどの、アプリケーション固有の拡張情報を取得する。


戻り値
    関数が成功すると、要求したデータ(32 ビット値)が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。