ビットマップをプリンタに印刷するには? – プログラミング – Home

ビットマップをプリンタに印刷するには?
 
通知
すべてクリア

ビットマップをプリンタに印刷するには?


Honey
 Honey
(@Honey)
ゲスト
結合: 25年前
投稿: 1
Topic starter  

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();


引用解決済
トピックタグ
JOECOOL
 JOECOOL
(@JOECOOL)
ゲスト
結合: 25年前
投稿: 1
 

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 );
.
.
.


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました