座標を指定して、黒を透明色で描画する

座標を指定して、黒を透明色で描画するメンバ関数(メソッド)を追加します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

Main Program の説明

  1. Main Program で変わるのは WM_PAINT: だけです。
    App->Show(0,100) を追加して下さい。
    既に Show(long x, long y) 関数が定義されているときは、ShowBlack(long x, long y) で定義して下さい。
            case WM_PAINT:
                hdc= BeginPaint(hWnd, &ps);
                App->Show();
                App->Show(0,100);
                EndPaint(hWnd, &ps);
                break;
        

BSprite Object Class の説明

  1. 透明色を設定した描画は、BitBlt() の代わりに TransparentBlt() を使うだけです。
    RGB(0,0,0) が透明色の設定で、一般的に黒が良く使われます。
        BitBlt(hdc,x,y,Width,Height,hBmpDC,0,0,SRCCOPY);
    
        TransparentBlt(hdc,x,y,Width,Height,hBmpDC,0,0,Width,Height,RGB(0,0,0));
        
  2. BSprite Object Class のヘッダファイル(BSprite.h) です。
    TransparentBlt() を使う時は wingdi.h をインクルードして msimg32.lib をリンクします。
    Show(long x, long y) が座標を指定して、黒を透明色で描画するメンバ関数です。
    Show() と同じ関数名ですが、パラメータの違いで識別されます。
    既に Show(long x, long y) 関数が定義されているときは、ShowBlack(long x, long y) で定義して下さい。
        //★ Basic Sprite Object Header   前田 稔 ★
        #include    <wingdi.h>
        #pragma     once
        #pragma     comment(lib,"msimg32.lib")
                :
    
        class BSprite
        {
                :
            HRESULT     Show();
            HRESULT     Show(long x, long y);
        };
        
  3. BSprite Object Class のプログラムファイル(BSprite.cpp) です。
    Show(long x, long y) または ShowBlack(long x, long y) 関数を追加して下さい。
        // 黒を透明色で描画する
        HRESULT  BSprite::Show(long x, long y)
        {
                :
        }
        

超初心者のプログラム入門(Win32API C++)