ヘッダー
Visual Basic サンプル集
VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 VB2022対応

マウスカーソルを独自のものにする

2022/1/30

→ C# のサンプルに切り替える

この記事は Windows フォーム アプリ を対象にしています。

 

 

マウスカーソルを動的に描画する

VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 VB2022対応

Const size As Integer = 64

Using bmp As New Bitmap(size, size)

    '▼グラフィックを描画(この段階ではメモリ上で描画され、どこにも表示されません。)
    Using g As Graphics = Graphics.FromImage(bmp)
        g.Clear(Color.Transparent) '背景を透明にする
        g.DrawEllipse(Pens.Red, 0, 0, size - 1, size - 1)
        g.DrawRectangle(Pens.Black, 0, 0, size - 1, size - 1)
        g.DrawString("✈", New Font(Me.Font.FontFamily, 20), Brushes.Orange, 0, 0)
    End Using

    '▼描画したグラフィックをマウスカーソルに設定
    Me.Cursor = New Cursor(bmp.GetHicon)

End Using

メモ:通常のマウスカーソルに戻す方法は、Me.Cursor = Cursors.Default です。

 

 

.icoファイル・.curファイルを読み込んでカスタムなマウスカーソルを表示する

前提:この例を実行するには C:\temp\original.cur という名前でマウスカーソルファイル(ポインターファイル)が存在している必要があります。

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 VB2022対応

Dim myCursor As New Cursor("C:\temp\original.cur")
Me.Cursor = myCursor

メモ:icoファイルはインターネットなどで有志が作成されたものが公開されています。「Windows アイコン ダウンロード」などで検索すると見つけられます。

メモ:オリジナルのアイコンを作成するソフトもあります。Visual Studio でも[ファイル] - [新規作成] - [ファイル] - [アイコンファイル]で .ico ファイルを作成できます。

メモ:curファイルはインターネットなどで有志が作成されたものが公開されています。「マウスカーソル ダウンロード」などで検索すると見つけられます。

メモ:オリジナルのマウスカーソルを作成するソフトもあります。Visual Studioでも[ファイル] - [新規作成] - [ファイル] - [カーソルファイル]で .cur ファイルを作成できます。

メモ:拡張子 .ani のアニメーションカーソルはこの方法では読み込めません。

 

 

PNG や GIF や JPEG を読み込んでカスタムなマウスカーソルとして表示する

前提:この例を実行するには C:\temp\original.png という名前で画像ファイルが存在している必要があります。

VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応 VB2022対応

Const size As Integer = 64

Using bmp As New Bitmap(size, size)

    '▼画像を描画(この段階ではメモリ上で描画され、どこにも表示されません。)
    Using g As Graphics = Graphics.FromImage(bmp)
        Using img = Image.FromFile("C:\temp\original.png")
            g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
            g.DrawImage(img,
                        New Rectangle(0, 0, size, size),
                        New Rectangle(0, 0, img.Width, img.Height),
                        GraphicsUnit.Pixel)
        End Using
    End Using

    '▼描画したグラフィックをマウスカーソルに設定
    Me.Cursor = New Cursor(bmp.GetHicon)

End Using

メモ:通常のマウスカーソルに戻す方法は、Me.Cursor = Cursors.Default です。