BitBlt         
画像の部分的コピーや貼り付け、色の反転など

☆宣言
'▼Windows APIの宣言
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

'▼定数の宣言
Global Const SRCCOPY = &HCC0020    'そのまま転送
Global Const SRCAND = &H8800C6     '転送先の画像とAND演算して転送
Global Const SRCPAINT = &HEE0086   '転送先の画像とOR演算して転送
Global Const SRCINVERT = &H660046  '背景を反映して色を反転して転送
Global Const NOTSRCCOPY = &H330008 '色を反転して転送
☆使用例と使用例のパラメータ
Ret = BitBlt(Picture1.hDC, 100, 100, 32, 32, _
Picture2.hDC, 0, 0, SRCCOPY)
Ret…関数が成功したかどうかが返ります。
  0以外…関数成功
  0    …関数失敗
Picture1.hDC…転送先のデバイスコンテキスト
100…転送される位置のX座標
100…転送される位置のY座標
32…転送する部分の幅
32…転送する部分の高さ
Picture2.hDC…転送元のデバイスコンテキスト
0…転送元における転送する部分の左上のX座標
0…転送元における転送する部分の左上のY座標
SRCCOPY…転送方法

☆転送方法
SRCCOPY…そのまま転送
SRCAND…転送先の画像とAND演算して転送
SRCPAINT…転送先の画像とOR演算して転送
SRCINVERT…転送先の画像とXOR演算して転送
NOTSRCCOPY…色を反転して転送


転送元と転送先のScaleModeは「3-ピクセル」に
することをお勧めします。
自分自身には転送できないので、自分自身に転送する
場合は、一旦他に転送してから転送しなおして下さい。

転送元のPictureのAutoRedrawはTrueにしておいて下さい。

サンプルプログラムを見て頂ければ、わかりやすいか思います。↓
☆サンプルプログラム
bitblt.lzh (9.79KB)


Directory Reference
Top page
 Visual Basic Room
  Windows API (戻る)
   BitBlt