指定した絵の範囲を指定した場所に転送します。 難しく言うと、 『ビットブロック転送を行います。コピー元からコピー先のデバイスコンテキストに、指定された長方形内の各ピクセルの色データをコピーします。』 |
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As
Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight
As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long,
ByVal dwRop As Long) As Long Const SrcCopy = &HCC0020 Const SrcAnd = &H8800C6 Const SrcPaint = &HEE0086 'この他の定数は下記のパラメータをご覧下さい '必要に応じて追加して下さい |
■使い方 BitBlt hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSrc,nXSrc,nYSrc,dwRop この命令後はリフレッシュして下さい ■パラメータ hdcDest コピー先のデバイスコンテキストのハンドルを指定します。 ピクチャーボックスだったらPicture3.hDCですね。 nXDest コピー先の左上の x 座標を指定します。 nYDest コピー先の左上の y 座標を指定します。 nWidth コピー元のコピーするビットマップの幅を指定します。 nHeight コピー元のコピーするビットマップの幅を指定します。 hdcSrc コピー元のデバイスコンテキストのハンドルを指定します。 nXSrc コピー元の x 座標を、指定します。 nYSrc コピー元の y 座標を、指定します。 dwRop ラスタオペレーションコードを指定します。ラスタオペレーションコードは、コピー元およびコピー先の色データをどのように結合するかを定義します。 よく使われるラスタオペレーションコードを、次の表に示します。
|
'ここからソースです Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Const SrcCopy = &HCC0020 Const SrcAnd = &H8800C6 Const SrcPaint = &HEE0086 'この他の定数は下記のパラメータをご覧下さい '必要に応じて追加して下さい Private Sub Form_Load() Picture1.AutoRedraw = True Picture2.AutoRedraw = True Picture3.AutoRedraw = True Picture1.AutoSize = True Picture2.AutoSize = True Picture3.AutoSize = True Picture1.ScaleMode = 3 Picture2.ScaleMode = 3 Picture3.ScaleMode = 3 'APIの場合ピクセルにするのは暗黙の了解です End Sub Private Sub Command1_Click() BitBlt Picture3.hDC, 0, 0, Picture2.Width, Picture2.Height, Picture2.hDC, 0, 0, SrcPaint 'モコナの白抜画像を背景とORします BitBlt Picture3.hDC, 0, 0, Picture1.Width, Picture1.Height, Picture1.hDC, 0, 0, SrcAnd 'モコナの画像と背景とANDします 'こうする事によって、背景にモコナを描けます 'この方法だと、白色すけます Picture3.Refresh End Sub |
ゲームでキャラクターを表示させる時に便利です。 手を加えると、移動できます。 その時は、キャラクターの残像を消す作業が入ります。 |