<Return[G]><Top>

GetClassLong

Declare Function Api_GetClassLong& Lib "user32" Alias "GetClassLongA" (ByVal hWnd&, ByVal nIndex&)

Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

指定されたウィンドウに関係付けられている WNDCLASSEX 構造体から、指定された long データ(32 ビット値)を取得する。

パラメータ
hWnd
    ウィンドウのハンドルを指定する。クラスも間接的に指定したことになる(指定したウィンドウの属するクラスが使われる)。
nIndex
    ウィンドウクラスに関するデータのうち、どのデータ(32 ビット値)を取得するのかを指定する。

    拡張クラスメモリからデータを取得するときは、0 から始まるオフセットをバイト単位で指定する。

    有効な値は、0 から拡張クラスメモリのバイト数より 4 小さい値までである。

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

    WNDCLASSEX 構造体から拡張クラスメモリ以外のデータを取得するときは、次の値のいずれかを指定する。

    値                                       

意味                                                                                                                              

    GCW_ATOM

ウィンドウクラスを一意的に識別するアトム値を取得する。

 

これは、RegisterClassEx 関数が返すアトムと同じである。

    GCL_CBCLSEXTRA

指定したクラスに関連付けられている拡張クラスメモリのサイズをバイト単位で取得する。

    GCL_CBWNDEXTRA

ウィンドウに関連付けられている拡張ウィンドウメモリのサイズをバイト単位で取得する。

 

このメモリへアクセスする方法については、GetWindowLong 関数の説明を参照すること。

    GCL_HBRBACKGROUND

クラスに関連付けられている背景ブラシのハンドルを取得する。

    GCL_HCURSOR

クラスに関連付けられているマウスカーソルのハンドルを取得する。

    GCL_HICON

クラスに関連付けられているアイコンのハンドルを取得する。

    GCL_HICONSM

クラスに関連付けられている小さいアイコンのハンドルを取得する。

    GCL_HMODULE

クラスを登録したモジュールのハンドルを取得する。

    GCL_MENUNAME

メニュー名が入った文字列へのポインタ(またはメニューの ID)を取得する。この文字列は、クラスに関連

 

付けられているメニューリソースを識別する。

    GCL_STYLE

ウィンドウクラスのスタイルビットを取得する。

    GCL_WNDPROC

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

 

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

 

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

解説
    拡張クラスメモリを確保するには、RegisterClassEx 関数に渡す WNDCLASSEX 構造体の cbClsExtra メンバに 0 以外の値を設定する。