19,468
社区成员
发帖
与我相关
我的任务
分享
void CMyView::OnDraw(CDC* pDC)
{
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
int i,j;
long x0,y0;
CPen MyPen1,*OldPen1,MyPen2,*OldPen2,MyPen3,*OldPen3;
MyPen1.CreatePen(PS_SOLID,1,RGB(0,0,255));
MyPen2.CreatePen(PS_SOLID,1,RGB(255,0,0));
MyPen3.CreatePen(PS_SOLID,1,RGB(0,255,255));
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(pDC);
MemBitmap.CreateCompatibleBitmap(pDC,cWidth,cHeight);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0,0,cWidth,cHeight,RGB(255,255,255));
// TODO: add draw code for native data here
for(j=0;j<total;j++)
{
if(show)
{
OldPen1=MemDC.SelectObject(&MyPen1);
for(i=0;i<pt[j].GetSize();i++)
{
MemDC.Rectangle(pt[j].GetAt(i).x-5,pt[j].GetAt(i).y-5,pt[j].GetAt(i).x+5,pt[j].GetAt(i).y+5);
}
OldPen3=MemDC.SelectObject(&MyPen3);
if(pt[j].GetSize()>0)
{
x0=pt[j].GetAt(0).x;
y0=pt[j].GetAt(0).y;
for(i=1;i<pt[j].GetSize();i++)
{
MemDC.MoveTo(x0,y0);
x0=pt[j].GetAt(i).x;
y0=pt[j].GetAt(i).y;
MemDC.LineTo(x0,y0);
}
}
}
OldPen2=MemDC.SelectObject(&MyPen2);
if(select[j])
{
DrawBezier(&MemDC,pt[j]);
}
else
{
DrawBYangTiao(&MemDC,pt[j],bstep[j]);
}
pDC->BitBlt(0,0,cWidth,cHeight,&MemDC,0,0,SRCCOPY);
MemBitmap.DeleteObject();
MemDC.DeleteDC();
}
}