Last Updated 2004/05/20
Programming Tips Visual C++ MFC 他のコントロール  索 引 
デスクトップのビットマップ表示
2004/05/20

デスクトップのビットマップをメモリに格納して,処理後再びデスクトップに表示する.

CreateCompatibleBitmap() で領域確保,BitBlt() する.


    CDC dcDesktop;  // デスクトップのデバイスコンテキスト
    CDC dcMem;      // ビットマップを保存するデバイスコンテキスト
    CBitmap bmMem;  // ビットマップを保存するビットマップ

    // 以下の変数はあらかじめ計算しておく
    CSize szObject;         // 読み込むビットマップのサイズ
    CPoint ptDrawing;       // 書き出し先

    // 読込処理
    dcDesktop.CreateDC("DISPLAY", NULL, NULL, NULL);
    dcMem.CreateCompatibleDC(&dcDesktop);
    bmMem.CreateCompatibleBitmap(&dcDesktop, szObject.cx, szObject.cy);
    CBitmap* pbmOld = dcMem.SelectObject(&bmMem);
    dcMem.BitBlt(0, 0, szObject.cx, szObject.cy,
                     &dcDesktop, ptDrawing.x, ptDrawing.y, SRCCOPY);

    // 処理


    // 描写処理
    dcDesktop.BitBlt(ptDrawing.x, ptDrawing.y,
             szObject.cx, szObject.cy, &dcMem, 0, 0, SRCCOPY);
    dcMem.SelectObject(pbmOld);


参照
前後のTips
デスクトップのビットマップ表示

DSS ProgrammingTipsCGI Ver2.02