次の方法で共有


CDC::MaskBlt

更新 : 2007 年 11 月

指定されたマスクとラスタ オペレーションを使って、転送元ビットマップと転送先ビットマップのカラー データを組み合わせます。

BOOL MaskBlt(
   int x,
   int y,
   int nWidth,
   int nHeight,
   CDC* pSrcDC,
   int xSrc,
   int ySrc,
   CBitmap& maskBitmap,
   int xMask,
   int yMask,
   DWORD dwRop 
);

パラメータ

  • x
    転送先四角形の左上隅の論理 x 座標を指定します。

  • y
    転送先四角形の左上隅の論理 y 座標を指定します。

  • nWidth
    転送先四角形と転送元ビットマップの幅を論理単位で指定します。

  • nHeight
    転送先四角形と転送元ビットマップの高さを論理単位で指定します。

  • pSrcDC
    ビットマップのコピー元になるデバイス コンテキストを識別します。パラメータ dwRop で転送元ビットマップを含まないラスタ オペレーションを指定するときは、0 を指定します。

  • xSrc
    転送元ビットマップの左上隅の論理 x 座標を指定します。

  • ySrc
    転送元ビットマップの左上隅の論理 y 座標を指定します。

  • maskBitmap
    転送元デバイス コンテキストのカラー ビットマップと組み合わされるモノクロのマスク ビットマップを識別します。

  • xMask
    パラメータ maskBitmap で指定されるマスク ビットマップの水平方向のピクセル オフセットを指定します。

  • yMask
    パラメータ maskBitmap で指定されるマスク ビットマップの垂直方向のピクセル オフセットを指定します。

  • dwRop
    フォアグラウンドとバックグラウンド両方の三項ラスタ オペレーション コードを指定します。このオペレーション コードは、転送元データと転送先データの組み合わせを関数が制御するのに使います。バックグラウンドのラスタ オペレーション コードは、この値の上位ワードの上位バイトに格納されます。フォアグラウンドのラスタ オペレーション コードは、この値の上位ワードの下位バイトに格納されます。この値の下位ワードは無視しますが 0 にしておく必要があります。マクロ MAKEROP4 は、このようなフォアグラウンドとバックグラウンドのラスタ オペレーション コードの組み合わせを作成します。この関数でのフォアグラウンドとバックグラウンドの説明については、「解説」を参照してください。標準のラスタ オペレーション コードの一覧については、BitBlt メンバ関数を参照してください。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

maskBitmap で指定されるマスク値の 1 は、dwRop で指定されるフォアグラウンド ラスタ オペレーション コードがその位置で適用されることを示します。マスク値の 0 は、dwRop で指定されるバックグラウンド ラスタ オペレーション コードがその位置で適用されることを示します。ラスタ オペレーションが転送元ビットマップを必要とするときは、マスク四角形は転送元四角形を覆っている必要があります。マスク四角形が転送先四角形を覆っていないと、関数は失敗します。ラスタ オペレーションが転送元ビットマップを必要としないときは、マスク四角形は転送先四角形を覆っている必要があります。マスク四角形が転送先四角形を覆っていないと、関数は失敗します。

この関数が呼び出されたとき、回転や傾斜による変形が転送元デバイス コンテキストに影響を与える場合は、エラーが発生します。その他の変形は可能です。

転送元ビットマップ、パターン ビットマップ、および転送先ビットマップのカラー フォーマットが違っているときは、転送元のカラー フォーマットと、パターンのカラー フォーマットを転送先のカラー フォーマットに変換します。マスク ビットマップがモノクロ ビットマップではない場合、エラーが発生します。拡張メタファイルを記録中に、転送元デバイス コンテキストが拡張メタファイルのデバイス コンテキストを識別したときは、エラーが発生し、関数は 0 を返します。すべてのデバイスが MaskBlt をサポートしているわけではありません。デバイスがこの関数をサポートしているかどうかを調べるために、アプリケーションは GetDeviceCaps 関数を呼び出す必要があります。マスク ビットマップが渡されなかったときは、フォアグラウンドのラスタ オペレーション コードを使って、BitBlt 関数とまったく同じ動作をします。マスク ビットマップのピクセル オフセットは、転送元デバイス コンテキストのビットマップの点 (0,0) に割り当てられます。これは、マスク ビットマップがマスクの組を持っているときに便利です。アプリケーションは、MaskBlt に送られるピクセル オフセットや四角形のサイズを調整することによって、マスクの中の適切な 1 つをマスク作業に適用できます。

必要条件

ヘッダー : afxwin.h

参照

参照

CDC クラス

階層図

CDC::BitBlt

CDC::GetDeviceCaps

CDC::PlgBlt

CDC::StretchBlt

MaskBlt

その他の技術情報

CDC のメンバ