SetClassLong

機能
ウィンドウクラスの32ビット値を変更
Declare Function SetClassLong Lib "user32.dll" Alias "SetClassLongA" _
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function SetClassInteger Lib "user32.dll" Alias "SetClassIntegerA" _
(ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal dwNewInteger As Integer) As Integer

DWORD SetClassLong(
HWND hWnd,
int nIndex,
LONG dwNewLong
);
引数
hWnd

設定対象のウィンドウのハンドル
nIndex
設定する項目を示す定数
dwNewLong
変更する値
戻り値
正常終了のとき  今まで設定されていた値
エラーのとき  0
nIndexの定数

GCL_CBCLSEXTRA = (-20)             エキストラクラスデータのバイト数
GCL_CBWNDEXTRA = (-18)             エキストラウィンドウデータのバイト数
GCL_HBRBACKGROUND = (-10)          クラスの背景ブラシのハンドル
GCL_HCURSOR = (-12)                クラスカーソルのハンドル
GCL_HICON = (-14)                  クラスアイコンのハンドル
GCL_HICONSM = (-34)                小さなクラスアイコンのハンドル
GCL_HMODULE = (-16)                モジュールのインスタンスハンドル
GCL_MENUNAME = (-8)                クラスメニュー名へのポインタ
GCL_STYLE = (-26)                  ウィンドウクラススタイル
GCL_WNDPROC = (-24)                ウィンドウ関数へのポインタ
GCL_ATOM = (-32)                   ウィンドウクラスを示す整数アトム
サンプル
ダウンロード(SetClassLong.lzh 1.63KB)

'ウィンドウクラスの32ビット値を変更する
Private Declare Function SetClassLong Lib "user32.dll" Alias "SetClassLongA" _
        (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'nIndexの定数
Private Const GCL_CBCLSEXTRA = (-20)         'エキストラクラスデータのバイト数
Private Const GCL_CBWNDEXTRA = (-18)         'エキストラウィンドウデータのバイト数
Private Const GCL_HBRBACKGROUND = (-10)       'クラスの背景ブラシのハンドル
Private Const GCL_HCURSOR = (-12)            'クラスカーソルのハンドル
Private Const GCL_HICON = (-14)              'クラスアイコンのハンドル
Private Const GCL_HICONSM = (-34)            '小さなクラスアイコンのハンドル
Private Const GCL_HMODULE = (-16)            'モジュールのインスタンスハンドル
Private Const GCL_MENUNAME = (-8)            'クラスメニュー名へのポインタ
Private Const GCL_STYLE = (-26)              'ウィンドウクラススタイル
Private Const GCL_WNDPROC = (-24)            'ウィンドウ関数へのポインタ
Private Const GCL_ATOM = (-32)               'ウィンドウクラスを示す整数アトム
'実行モジュールリソース中のアイコンのハンドルを取得する
Private Declare Function LoadIcon Lib "user32.dll" Alias "LoadIconA" _
    (ByVal hInstance As Long, ByVal lpIconName As Long) As Long
Private Const IDI_APPLICATION = 32512
Private Const IDI_HAND = 32513
Private Const IDI_QUESTION = 32514
Private Const IDI_EXCLAMATION = 32515
Private Const IDI_ASTERISK = 32516
Private Const IDI_WINLOGO = 32517
'アイコンを破棄する
Private Declare Function DestroyIcon Lib "user32.dll" (ByVal hIcon As Long) As Long

Private Sub Command1_Click() Dim hWnd As Long, hIcon As Long 'ハンドル取得 hWnd = Me.hWnd 'アイコンのハンドル取得 hIcon = LoadIcon(0, IDI_APPLICATION) Debug.Print SetClassLong(Me.hWnd, GCL_HICONSM, hIcon) End Sub