绘制代码;
void CDaocaView::OnDraw(CDC* pDC)
{
CDaocaDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
COLORREF DaoChaColor= RGB(0,0,0);
int width = m_rect.Width() ;
int height = m_rect.Height() ;
CPen newpen(PS_SOLID,60,DaoChaColor);
CPen newpen1(PS_SOLID,60,RGB(0,255,255));
CPen *pOldPen = pDC->SelectObject(&newpen);
pDC->MoveTo(m_rect.left,(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width*0.33),(int)(m_rect.top + height*0.5));
pDC->MoveTo((int)(m_rect.left +width*0.33),(int)(m_rect.top+height*0.5));
pDC->LineTo((int)(m_rect.left +width*0.5),(int)(m_rect.top+(height*0.5+width*(sqrt(3))/6)));
pDC->MoveTo((int)(m_rect.left +width*0.67),(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width),m_rect.top+height*0.5);
m_rect.left=240;
m_rect.right=440;
pDC->MoveTo(m_rect.left,(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width/3),(int)(m_rect.top + height*0.5));
pOldPen = pDC->SelectObject(&newpen1);
pDC->MoveTo((int)(m_rect.left +width/3),(int)(m_rect.top+height*0.5));
pDC->LineTo((int)(m_rect.left +width*2/3),(int)(m_rect.top+height*0.5));
pOldPen = pDC->SelectObject(&newpen);
pDC->MoveTo((int)(m_rect.left +width*2/3),(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width),m_rect.top+height*0.5);
m_rect.left=470;
m_rect.right=670;
pDC->MoveTo(m_rect.left,(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width/3),(int)(m_rect.top + height*0.5));
pDC->MoveTo((int)(m_rect.left +width/3),(int)(m_rect.top+height*0.5));
pDC->LineTo((int)(m_rect.left +width*0.5),(int)(m_rect.top+(height*0.5-width*(sqrt(3))/6)));
pDC->MoveTo((int)(m_rect.left +width*2/3),(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width),m_rect.top+height*0.5);
m_rect.left=700;
m_rect.right=900;
pDC->MoveTo(m_rect.left,(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width/3),(int)(m_rect.top + height*0.5));
pDC->MoveTo((int)(m_rect.left +width/3),(int)(m_rect.top+height*0.5));
pDC->LineTo((int)(m_rect.left +width/2),(int)(m_rect.top+(height*0.5+width*(sqrt(3))/6)));
pDC->MoveTo((int)(m_rect.left +width*2/3),(int)(m_rect.top + height*0.5));
pDC->LineTo((int)(m_rect.left +width),m_rect.top+height*0.5);
pDC->SetBkMode(TRANSPARENT);
pDC->SelectObject(pOldPen);
}
头文件添加一个成员变量:CRect m_rect;
初始化;
CDaocaView::CDaocaView()
{
// TODO: add construction code here
m_rect.left=10;
m_rect.top=10;
m_rect.right=210;
m_rect.bottom=210;
}
包含<math.h>;
绘制效果如下;
我也不太了解什么是道岔;可能是指的铁路交叉的地方;