デバイスコンテキストからの一部分を表示させるには?

解決


りょ  2004-03-10 09:43:44  No: 53288

今、BMPのTIPを繋ぎ合わせて1枚のMapを作り、そのMapの一部分だけを
ウィンドウに表示させることを考えてます。

maptipというのが,BMPのTIPを並べたBMPで、
そこからBitbltを使って、mapdc(MapViewクラスが持っているメンバ)にMAPを作ってます。
その後、Bitbltを使ってmapdcの一部分を表示させようと
しているのですが、何も表示されません。

初心者なもので、トンチンカンな質問をしているかと思いますが、
よろしくお願いします。

void MapView::drawMaptoScreen(CDC *pDC)
{
CBitmap maptip;
maptip.LoadBitmap(IDB_Maptip);
CDC maptipdc;
maptipdc.CreateCompatibleDC(0);
CBitmap* Oldmaptip = maptipdc.SelectObject(&maptip);

mapdc.CreateCompatibleDC(pDC);

for (int j = 0; j < 15; ++j)
  for (int i = 0; i < 15; ++i)
    mapdc.BitBlt(i * 32, j * 32, 32, 32, &maptipdc, 0, 0, SRCCOPY);

maptipdc.SelectObject(Oldmaptip);

pDC->BitBlt(0, 0, 32, 32, &mapdc, 0, 0, SRCCOPY);
}


n  2004-03-10 17:53:47  No: 53289

mapdcにBMPが結び付けられてますか?


りょ  2004-03-11 07:15:21  No: 53290

mapdc.SelectObjectのことでしょうか?
この場合,引数に(与えるBMPは)何を指定すればよいのでしょうか?


n  2004-03-11 17:11:08  No: 53291

DCはいうなれば画家(と画材一式)で、DCに選択するビットマップは画用紙です。
必要な大きさと形式を持ったビットマップを
CBitmap::CreateCompatibleBitmap()とかで作って、指定しましょう。


りょ  2004-03-14 00:38:27  No: 53292

ありがとうございました。
無事解決しました。
今後もよろしくお願いいたします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加