StretchBlt | |
画像の拡大/縮小、水平/垂直方向の反転など |
☆宣言 |
'▼APIの宣言 Declare Function StretchBlt Lib "gdi32" ( _ ByVal hdc 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 nSrcWidth As Long, _ ByVal nSrcHeight 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 = StretchBlt(Picture2.hDC, 0, 0, 200, 200, _ Picture1.hDC, 0, 0, pw, ph, SRCCOPY) |
Ret…関数が成功したかどうかが返ります。 0以外…関数成功 0 …関数失敗 Picture1.hDC…転送先のデバイスコンテキスト 100…転送される位置のX座標 100…転送される位置のY座標 200…転送後の画像の幅 200…転送後の画像の高さ Picture2.hDC…転送元のデバイスコンテキスト 0…転送元における転送する部分の左上のX座標 0…転送元における転送する部分の左上のY座標 100…転送する画像の幅 100…転送する画像の高さ SRCCOPY…転送方法 ☆転送方法 SRCCOPY…そのまま転送 SRCAND…転送先の画像とAND演算して転送 SRCPAINT…転送先の画像とOR演算して転送 SRCINVERT…転送先の画像とXOR演算して転送 NOTSRCCOPY…色を反転して転送 ☆反転する場合 画像の転送先の幅もしくは高さを負の値にすることによって その方向が反転されて転送されます。 それから、転送される位置というのは下の矢印の 始点と考えて下さい。 普通の転送 上下反転の転送 上下左右反転の転送 ただし、転送先の左上の座標のうち反転した方の軸の値は 1をひいて下さい。そうしないと1ドットその方向がずれます。 転送元と転送先のScaleModeは「3-ピクセル」に することをお勧めします。 自分自身には転送できないので、自分自身に転送する 場合は、一旦他に転送してから転送しなおして下さい。 転送元のPictureのAutoRedrawはTrueにしておいて下さい。 サンプルプログラムを見て頂ければ、わかりやすいかと思います。↓ |
☆サンプルプログラム |
strblt.lzh (9.90KB) |
Directory Reference | ||||
---|---|---|---|---|
|