グラフィック転送命令「BitBlt」

VBにはグラフィックイメージを丸ごと転送する命令はありますが、 グラフィックの一部を座標単位で抜き出してコピーする事が出来ません。
これはゲームを作る場合では致命的な欠点であり、出来ない事が分かった時点で VBをごみ箱にポイとなりかねないのです。 実際、私がそうでしたから・・。

VB4、VB5といろいろ命令やコントロールが追加されているので、 今はVBで出来ます。 イメージリストとかPaintPictureとか。(使った事無いけど)

私はVB2からスタートしたので大問題でした。
なお、16bit版VB固有の問題点はもう古い事なので削除してます。


解決法

Windows APIを利用する。
VBで出来ない事はWindows APIを使って実現します。
CG転送はBitBlt,StrechBltを使って実現します。

BitBlt,StrechBltを使う上での注意点

1. 座標系をピクセルに設定する。

2. AutoRedrawをTureに設定する。

3. 1.2で動かない場合、標準モジュール(コードモジュールとも言います)に BitBlt記述。フォームモジュールで実行した場合、真っ黒ベタ転送になる事が あります。

4. BitBlt命令を出してもVBが書き換えを認識せず、書き換えない場合があります。 その場合、Refreshメソッドを使って、VBに再描画を指示します。