本文共 2558 字,大约阅读时间需要 8 分钟。
绘制代码;
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>;
绘制效果如下;
我也不太了解什么是道岔;可能是指的铁路交叉的地方;
转载地址:http://kpyy.baihongyu.com/