プロが教える店舗&オフィスのセキュリティ対策術

// あまり意味はないのですが、
//CDCのオブジェクトを宣言して、
//そこへ図形を描画して、
//クライエント領域にBitBltするときは、
//どうすればいいですか?
//CreateCompatibleDCが関係していると思っています。
//ですが、上手く描画できません。
//教えてください、
//お願いします。
void CProject1View::OnDraw(CDC* pDC)
{
CProject1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
//////////////////////////////////////////////////////

CDC imageDC;
CPen pen,*oldpen;
pen.CreatePen(PS_SOLID,3,RGB(255,0,0));
imageDC.CreateCompatibleDC(pDC);
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
imageDC.SetPixel(i,j,RGB(128,0,0));
}
}
oldpen=imageDC.SelectObject(&pen);
imageDC.Rectangle(50,50,400,300);
pDC->BitBlt(0,0,600,600,&imageDC,0,0,SRCCOPY);
imageDC.SelectObject(oldpen);
//////////////////////////////////////////////////////
}

A 回答 (1件)

こちらを参照


http://www.expertmg.co.jp/html/cti/vctips/others …仮想画面で高速描画

参考URL:http://www.expertmg.co.jp/html/cti/vctips/others …仮想画面で高速描画
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
一応以下のようにする事で出来ました。

void CProject1View::OnDraw(CDC* pDC)
{
CProject1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
//////////////////////////////////////////////////////

CDC imageDC;
CPen pen,*oldpen;
pen.CreatePen(PS_SOLID,3,RGB(255,0,0));
imageDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,600,600);
imageDC.SelectObject(&bmp);
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
imageDC.SetPixel(i,j,RGB(0,0,255));
}
}
oldpen=imageDC.SelectObject(&pen);
imageDC.Rectangle(50,50,400,300);
imageDC.Ellipse(100,100,600,600);
pDC->TransparentBlt(0,0,600,600,&imageDC,0,0,600,600,RGB(0,0,0));
imageDC.SelectObject(oldpen);
//////////////////////////////////////////////////////
}

お礼日時:2004/06/17 19:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!