マウスカーソルの変更 <TOP>
ここでは、マウスカーソルをアニメーション形式に変更してみます。
GetWindowsDirectory Winodws フォルダのパス名を取得
CopyIcon カーソルのコピーを作成
LoadCursorFromFile カーソルをファイルから取得
SetCursor マウスカーソルの形状を設定
SetSystemCursor システムのマウスカーソルを変更
GetCursor 現在使用しているマウスカーソルのハンドルを取得
変更した場合 戻した場合

カーソルは『コントロールパネル』→『マウス』→『ポインタ』→『参照』で見ることができます。

'================================================================ '= マウスカーソルの変更
'= (SetCursor.bas)
'================================================================
#include "Windows.bi"
' Windowsディレクトリのパス名を取得
Declare Function Api_GetWindowsDirectory& Lib "Kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer$, ByVal nSize&)
' カーソルのコピーを作成
Declare Function Api_CopyIcon& Lib "user32" Alias "CopyIcon" (ByVal hIcon&)
' カーソルをファイルから取得
Declare Function Api_LoadCursorFromFile& Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName$)
' マウスカーソルの形状を設定
Declare Function Api_SetCursor& Lib "user32" Alias "SetCursor" (ByVal hCursor&)
' システムのマウスカーソルを変更
Declare Function Api_SetSystemCursor& Lib "user32" Alias "SetSystemCursor" (ByVal hcur&, ByVal id&)
' 現在使用しているマウスカーソルのハンドルを取得
Declare Function Api_GetCursor& Lib "user32" Alias "GetCursor" ()
#define OCR_NORMAL 32512 'Windows組込ビットマップ
Var Shared CurrenthCurs As Long
Var Shared TempCurs As Long
Var Shared NewhCurs As Long
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
Var myDir As String
Var lDir As Long
Var Ret As Long
myDir = Space$(255)
CurrenthCurs = Api_GetCursor()
TempCurs = Api_CopyIcon(CurrenthCurs)
lDir = Api_GetWindowsDirectory(myDir, 255)
myDir = Left$(myDir, lDir) & "\cursors\iwatobi3.ani"
NewhCurs = Api_LoadCursorFromFile(myDir)
Ret = Api_SetSystemCursor(NewhCurs, OCR_NORMAL)
End Sub
'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
Var Ret As Long
Ret = Api_SetSystemCursor(TempCurs, OCR_NORMAL)
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End