<Return[S]><Top>

SetWindowLong

Declare Function Api_SetWindowLong& Lib "user32" Alias "SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

指定されたウィンドウの属性を変更する。拡張ウィンドウメモリ内の指定されたオフセット位置にある long データ(32 ビット値)も設定できる。

パラメータ
hWnd
    ウィンドウのハンドルを指定する。クラスも間接的に指定したことになる(指定したウィンドウの属するクラスが使われる)。
    Windows 95/98:hWnd パラメータで指定したウィンドウが SetWindowLong 関数を呼び出したスレッドと同じプロセスに属していないと、

    SetWindowLong 関数は失敗する。
nIndex
    設定する値の 0 から始まるオフセットを指定する。有効な値は、0 から拡張ウィンドウメモリのバイト数より 4 小さい値までである。

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

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

    値                           

動作                                                                                                                                              

    GWL_EXSTYLE

拡張ウィンドウスタイルを書き換える。

    GWL_STYLE

ウィンドウスタイル を書き換える。

    GWL_WNDPROC

 

ウィンドウプロシージャのアドレスを書き換える。Windows NT/2000:この属性は、ウィンドウが関数を呼び出したス

レッドと同じプロセスに属していないと変更できない。

    GWL_HINSTANCE

アプリケーションのインスタンスハンドルを書き換える。

    GWL_ID

ウィンドウの ID を書き換える。

    GWL_USERDATA

 

 

ウィンドウに関連付けられている 32 ビット値を書き換える。

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

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

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

    値                           

動作                                                                                                       

    DWL_DLGPROC

ダイアログボックスプロシージャのアドレスを設定する。

    DWL_MSGRESULT

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

    DWL_USER

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

dwNewLong
    新しく設定する値を指定する。

戻り値
    関数が成功すると、変更前の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。