フェードイン・フェードアウト
ある画像から別の画像を表示するとき、前の画像をフェードアウトさせ、新しい画像をフェードインさせたいと考えたことはありませんか?実はこれ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色環境では正常に表示されません。