カーソルを作成 <TOP>
新しいカーソルを作成します。
CreateCursor 指定されたサイズ、 ビットパターン及びホットスポットを持つマウスカーソルの作成
DestroyCursor カーソルを破棄する
SetCursor マウスカーソルの形状を設定
Sleep カレントスレッドの実行を指定の時間だけ中断
ホットスポットを32×32の中心とした十字のカーソルを作成し、10秒後にデフォルトカーソルに戻しています。
'================================================================ '= カーソルを作成 '= (CreateCursor.bas) '================================================================ #include "Windows.bi" ' 指定されたサイズ、 ビットパターン及びホットスポットを持つマウスカーソルの作成 Declare Function Api_CreateCursor& Lib "user32" Alias "CreateCursor" (ByVal hInstance&, ByVal nXhotspot&, ByVal nYhotspot&, ByVal nWidth&, ByVal nHeight&, lpANDbitPlane As Any, lpXORbitPlane As Any) ' カーソルを破棄する Declare Function Api_DestroyCursor& Lib "user32" Alias "DestroyCursor" (ByVal hCursor&) ' マウスカーソルの形状を設定 Declare Function Api_SetCursor& Lib "user32" Alias "SetCursor" (ByVal hCursor&) ' カレントスレッドの実行を指定の時間だけ中断 Declare Sub Api_Sleep Lib "Kernel32" Alias "Sleep" (ByVal dwMilliseconds&) '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Var hNewCursor As Long '新たなカーソル Var hOldCursor As Long 'デフォルトカーソル Var andBuffer As String 'カーソルをドットで描画 Var xorBuffer As String 'マスク Var andBits(127) As Byte 'ビット(and) Var xorBits(127) As Byte 'ビット(xor) Var readData As String '読込データ Var c As Integer Var Ret As Long 'データ読み込み For c = 0 To 7 Read readData andBuffer = andBuffer & readData Next For c = 0 To 7 Read readData xorBuffer = xorBuffer & readData Next '配列に代入 For c = 0 To 127 andBits(c) = Val("&H" & Mid$(andBuffer, 2 * c + 1, 2)) xorBits(c) = Val("&H" & Mid$(xorBuffer, 2 * c + 1, 2)) Next c 'hotspotを中心とした十字のカーソルを作成 hNewCursor = Api_CreateCursor(GethInst, 16, 16, 32, 32, andBits(0), xorBits(0)) '新たなカーソルに変更 hOldCursor = Api_SetCursor(hNewCursor) 'カーソル変更 Api_Sleep 10000 '10秒待つ Ret = Api_SetCursor(hOldCursor) 'デフォルトカーソルに変更 Ret = Api_DestroyCursor(hNewCursor) 'カーソルを破棄 data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "00000000FFFF7FFFFFFF7FFFFFFF7FFF" data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "FFFF7FFFFFFF7FFFFFFF7FFFFFFF7FFF" data "00000000000000000000000000000000" data "00000000000000000000000000000000" data "00000000000000000000000000000000" data "00000000000000000000000000000000" data "00000000000000000000000000000000" data "00000000000000000000000000000000" data "00000000000000000000000000000000" data "00000000000000000000000000000000" End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End