ソフトウェア開発 Win32プログラミング

ビットマップを描画する

戻る


ビットマップを描画したい場合は、CreateCompatibleDCで作成したメモリDCでビットマップを選択した後、 そのDCでRectangle、FillRect、LineToなどの描画関数を呼ぶとよい。例を挙げる:

// 適当なビットマップ描画関数。
VOID DrawItOnBitmap(HBITMAP hbm)
{
    HDC hdc;        // メモリDC
    HBITMAP hbmOld;
    hdc = CreateCompatibleDC(NULL);         // メモリDCを作成する。
    if (hdc != NULL)
    {
        hbmOld = SelectObject(hdc, hbm);    // ビットマップを選択する。

        // ここでhdcを使って適当な描画関数を呼ぶ。
        Rectangle(hdc, 10, 10, 100, 100);   // 四角形を描く。

        SelectObject(hdc, hbmOld);          // ビットマップの選択を解除する。
        DeleteDC(hdc);                      // もう必要ないので、メモリDCを破棄する。
    }
}

SetPixel、SetPixelV関数は、指定された座標に点を打つ。 BitBlt関数はビットマップの一部または全部をコピーするときに使う。 StretchBlt関数は、ビットマップの一部を拡大・縮小して転送する。

LineTo、PolyBezier、PolyBezierTo、Polyline、PolylineTo、PolyPolyline関数は、 現在選択しているペンで線を描画する。 最後にToが付いている関数は、指定位置まで線を延ばしたり現在の描画位置を変更したりする。 CreatePen、CreatePenIndirect、ExtCreatePenのどれかでペンを作成して選択後、使い終わったらDeleteObjectで破棄するといい。

MoveToEx関数は、現在の描画位置を変更するだけ。 1本の直線を描くときにはMoveToExとLineToを組み合わせて呼ぶといい。

Rectangle、RoundRect、Ellipse、Polygon、PolyPolygon関数は、 現在選択中のペンで線を描き、現在選択中のブラシで内部を塗りつぶして図形を描画する。 CreateSolidBrush、CreateHatchBrush、CreatePatternBrush、CreateDIBPatternBrushPt のどれかでブラシを作成して選択後、使い終わったらDeleteObjectで破棄するといい。

TextOut、ExtTextOut、DrawText関数は、SetTextColorで事前に指定した文字色で文字を描画する。 文字の描画の際には、SetBkColorとSetBkModeで設定できる背景色と背景モードが使われる。

FillRect関数は指定されたブラシで四角形を塗りつぶす。

この他にもいろいろな関数があるので、ヘルプを参照されたい。


戻る

©片山博文MZ
katayama.hirofumi.mz@gmail.com

inserted by FC2 system