ウィンドウクラスの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
変更する値戻り値
正常終了のとき 今まで設定されていた値nIndexの定数
エラーのとき 0
サンプル
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