フェードイン・フェードアウト


 ある画像から別の画像を表示するとき、前の画像をフェードアウトさせ、新しい画像をフェードインさせたいと考えたことはありませんか?実はこれVBの機能のみでも可能なのです。

 まず、表示用と画像読み込み用の2つのPictureBoxを用意します。画像読み込み用に画像を読み込んでおきます。表示用のPictureBoxのDrawModeを13(Copy-Pen)にし、BitBltで画像読み込み用の画像を表示用に転送します。次に表示用のPictureBoxのDrawModeを9(Mask-Pen)にします。それから表示用のPictureBox全体をLine関数で描画します。この時、色を白からだんだん黒にしていくとフェードアウトしていくよにうなります。
 ソースをかいてみます。picShowを表示用、picLoadを読み込み用のPictureBoxとします。
なお、ここではBitBltを使用しています。

Dim i as Integer
picLoad.picture=LoadPicture("Test.bmp")
For i=255 to 0 Step -15 'フェードインの時はi=0 to 255 step 15  stepの幅は適当に
    picShow.DrawMode=13
    BitBlt picShow.hDC, 0, 0, picLoad.ScaleWidth, picLoad.ScaleHeight,picLoad.hDC, 0, 0, SRCCOPY
    picShow.DrawMode=9
    picShow.Line(0,0)-(picLoad.ScaleWidth,picLoad.ScaleHeight),RGB(i,i,i),BF
    picShow.Refresh
Next

なお、256色環境では正常に表示されません。

戻る