ViewクラスのOnDraw()でビットマップを表示しているのですが、
プレビューでは表示されるのにプリンタに印刷するとビットマップ
だけが印刷されません
Font、Line、Rgnで描いた図は印刷されているのですが…
コードは以下の通りですが、何か間違っているのでしょうか?
// ロゴのビットマップを読み込む
CBitmap bmRogo, *pbmOldBitMap;
CDC MemDC;
bmRogo.LoadBitmap(IDB_ROGO);
MemDC.CreateCompatibleDC(pDC);
pbmOldBitMap = MemDC.SelectObject(&bmRogo);
pDC->StretchBlt((int)(rectClient.right * 18.0 / 20.0), (int)(dHeightCalc * 35.0), (int)(rectClient.right / 20.0), (int)(rectClient.right / 20.0 * 30.0 / 93.0), &MemDC, 0, 0, 92, 29, SRCCOPY);
MemDC.SelectObject(pbmOldBitMap);
MemDC.DeleteDC();
HONEY さんこんにちは。私も同じ問題を抱えて数日考え込んでいました。
ホントの理由は、分からないんですが以下の方法でビットマップを貼り付けると出来るようです。
直接 pDC に貼り付けるとうまくいかないようです(原因不明)。
ポイントは、 hDC に GetDC します(私の場合はhDCにビューがセットされる)。
//ビットマップ貼付前処理
CDC hMemoryDC; // 裏画面用DC
CBitmap hMemoryBit; // 裏画面用BitMap
CBitmap* m_OldBit;
CDC* hDC=GetDC(); // ここと
hMemoryDC.CreateCompatibleDC( hDC ); // ここがミソ
hMemoryBit.LoadBitmap( _T(IDB_ROGO) );
m_OldBit = hMemoryDC.SelectObject( &hMemoryBit );
// 貼り付け
pDC->StretchBlt(0, 0, x, y, &hMemoryDC, 0, 0, x1, y1, SRCCOPY );
ReleaseDC ( hDC );
hMemoryDC.SelectObject( m_OldBit );
.
.
.