メモリDCからpDCに表示 – プログラミング – Home

通知
すべてクリア

[解決済] メモリDCからpDCに表示


りもん
 りもん
(@りもん)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

お世話になってます、環境はWinXP VC7 MFC Doc/View です。

メモリDC上にある文字列や長方形をpDCに表示したいのですが。
CViewのOnDrawで
CDC mDC;//メモリDC作成
mDC.CreateCompatibleDC(pDC);

mDC.Rectangle(50,50,100,100);
mDC.TextOut(0,0,ABCDEFG);

pDC->BitBlt(0,0,1000,1000,&mDC,0,0,SRCCOPY);//pDCに転送
としてもView上には何も表示されませんでした。
それを
CDC mDC;
mDC.CreateCompatibleDC(pDC);

CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);//白で塗りつぶされた200*200のbitmap
mDC.SelectObject(&bitmap);

mDC.Rectangle(50,50,100,100);
mDC.TextOut(0,0,ABCDEFG);

pDC->BitBlt(0,0,1000,1000,&mDC,0,0,SRCCOPY);
とすると文字列や長方形が表示されます。(白いbitmapの上に)
bitmapなど使わずに文字列などを表示したいのですが
いかようにすればよいのでしょうか?


引用未解決
トピックタグ
らふ
 らふ
(@らふ)
ゲスト
結合: 23年前
投稿: 18
 

CreateCompatibleDCで作成されたメモリDCにはあらかじめ 縦横1ピクセルの
ビットマップが選択されています。
なので、ビットマップを選択せずにDCを操作してもほとんど意味がありません。(小さす
ぎ)
必要なサイズのビットマップをCreateCompatibleBitmap()などで作成し、
メモリDCに選択してから描画などを行う必要があります。

ちなみに、(本当の意味で)ビットマップを選択せずに描画することはできません。
現実世界で言うと、DCは画板、ビットマップが紙にあたるもので、紙が無くては絵を
描くことはできない、ということです。
#画板に描けばいい、とかそういうのは無しで(^^:


返信引用
りもん
 りもん
(@りもん)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

CreateCompatibleBitmap()で
リソースのbitmap無しでもうまくいきました。

丁寧に教えていただきありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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