Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows フォーム デザイナで生成されたコード "

    Public Sub New()
        MyBase.New()

        ' この呼び出しは Windows フォーム デザイナで必要です。
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後に初期化を追加します。

    End Sub

    ' Form は dispose をオーバーライドしてコンポーネント一覧を消去します。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    ' Windows フォーム デザイナで必要です。
    Private components As System.ComponentModel.IContainer

    ' メモ : 以下のプロシージャは、Windows フォーム デザイナで必要です。
    ' Windows フォーム デザイナを使って変更してください。  
    ' コード エディタは使用しないでください。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
        Me.Text = "Form1"
    End Sub

#End Region

    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        'グラフィクスオブジェクトの取得
        Dim g As Graphics
        g = e.Graphics

        'スプライトを用意する
        Dim sImage0 As New Bitmap(Application.StartupPath + "\test0.bmp")
        Dim sImage1 As New Bitmap(Application.StartupPath + "\test1.bmp")
        sImage1.MakeTransparent(Color.Black)
        Dim sImage2 As Bitmap = sImage1.Clone(New Rectangle(0, 0, 64, 64), sImage1.PixelFormat)
        sImage2.RotateFlip(RotateFlipType.Rotate90FlipNone)
        Dim sImage3 As Bitmap = sImage1.Clone(New Rectangle(0, 0, 64, 64), sImage1.PixelFormat)
        sImage3.RotateFlip(RotateFlipType.Rotate180FlipNone)
        Dim sImage4 As Bitmap = sImage1.Clone(New Rectangle(0, 0, 64, 64), sImage1.PixelFormat)
        sImage4.RotateFlip(RotateFlipType.Rotate270FlipNone)

        'BackBufferへスプライトを書き込む
        g.DrawImage(sImage0, 0, 0)
        g.DrawImage(sImage1, 20, 20)
        g.DrawImage(sImage2, 100, 20)
        g.DrawImage(sImage3, 20, 100)
        g.DrawImage(sImage4, 100, 100)


    End Sub

    Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
        'ダブルバッファーになるように設定
        SetStyle(ControlStyles.AllPaintingInWmPaint, True)
        SetStyle(ControlStyles.UserPaint, True)
        SetStyle(ControlStyles.DoubleBuffer, True)
    End Sub
End Class
