/// 実習I1 グラフィックス(2) | プログラミング実習 |
プロジェクト名 実習Iイメージ移動1
動作説明
ピクチャボックスに画像を表示する。 (まだ移動しない)
デザイン
↑実行結果(デザイン時は画像表示なし)フォーム Form1
Size = 470, 300
ピクチャボックス picField
BackColor = White (白)
BorderStyle = FixedSingle
Image = right1.gif
Location = 12, 12
Size = 360, 240
コード(プログラム)
Public Class Form1
Dim Gx, Gy As Integer '表示座標(X,Y)用 メンバ変数
Dim Gr As Graphics 'Graphics用 メンバ変数
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'Bitmapオブジェクト作成
picField.Image = New @ (picField.Width, picField.Height)
'Graphicsオブジェクト作成
Gr = Graphics.FromImage( A ) ※1
'描画座標(100,100)に設定(初期化)
B = 100 'x座標
C = 100 'y座標
'画像を座標(Gx,Gy)に描画
Gr.DrawImage(My.Resources.right1, Gx, Gy)
picField.Refresh() 'ピクチャボックスの更新
End Sub
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs)
Handles Me.FormClosing
Gr.Dispose() '終了時にオブジェクト解放 ※2
End Sub
End Class
キーワード
- メンバ変数
- クラス内(Public Class Form1 〜 End Class)のすべてのメソッドから参照できる(利用できる)変数。
実習E3,E5,E9で利用。
解説
※1 変数Grは、メンバ変数として宣言済であるから、Grapichsオブジェクトを変数Grに代入するだけとなっている。
※2 プログラムが終了するときに、Grapichsオブジェクト(変数Gr)を解放する。
プログラムが終了するまで、Grapichsオブジェクトの変数Grは使い続けることができる。
テスト
□ ピクチャボックスの座標(100,100)に画像が表示される。
I1の2
動作説明
ボタンをクリックすると画像が右方向に移動する。かな?
デザイン
ボタン btnRight
Text = 右へ
↓実行結果
コード(プログラム) 追加部分のみ。
Private Sub btnRight_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRight.Click
'右へ10ピクセル移動
Gx = @ + 10
'画像を座標(Gx,Gy)に描画
Gr. A (My.Resources.right1, Gx, Gy)
picField.Refresh() 'ピクチャボックスの更新
End Sub
解説
変数Grは、メンバ変数として宣言済みである。また、Form1_LoadメソッドでGraphicsオブジェクトを代入しているので、Graphicsオブジェクトを改めて作成する必要はない。
テスト
□ [右へ]ボタンをクリックすると、移動前の画像に重なって表示される。
I1の3
動作説明
ボタンをクリックすると画像が右方向に移動する。
デザイン 変更なし
コード(プログラム) 追加部分のみ。
Private Sub btnRight_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRight.Click
'右へ10ピクセル移動
Gx = @ + 10
'グラフィックス消去
Gr. A (Color.White) 'グラフィックス消去 ←この1行を追加
'画像を座標(Gx,Gy)に描画
Gr. B (My.Resources.right1, Gx, Gy)
picField.Refresh() 'ピクチャボックスの更新
End Sub
解説
「消してから描く」である。
テスト
□ [右へ]ボタンをクリックすると、画像が移動する。
課題 [左へ]ボタン(btnLeft)、[上へ]ボタン(btnUp)、[下へ]ボタン(btnDown)を追加し、画像が上下左右に移動できるようにせよ。
/// 実習I1 グラフィックス(2) | Copyright©2015-2017 Hiroshi Masuda |