http://www.j2megame.org/wupei/blog.php/myblog/vc/2008/01/11/arrow-in-mfc CPen pen(nPenStyle,nWidth,crColor); CPoint second,third; CPen * pOldPen = dc.SelectObject( & pen); dc.MoveTo(m_ptOrigin); dc.LineTo(m_ptEnd); double slopy , cosy , siny; double Par = 18.0 ; // length of Arrow slopy = atan2((m_ptOrigin.y - m_ptEnd.y), (m_ptOrigin.x - m_ptEnd.x)); cosy = cos(slopy); siny = sin(slopy); CBrush cb; cb.CreateSolidBrush(RGB( 0 , 111 , 255 )); dc.SelectObject( & cb); CPoint p[ 3 ]; p[ 0 ] = m_ptEnd; p[ 1 ].x = m_ptEnd.x + int (Par * cosy - (Par / 2.0 * siny)); p[ 1 ].y = m_ptEnd.y + int (Par * siny + (Par / 2.0 * cosy)); p[ 2 ].x = m_ptEnd.x + int (Par * cosy + Par / 2.0 * siny); p[ 2 ].y = m_ptEnd.y - int (Par / 2.0 * cosy - Par * siny); dc.Polygon(p, 3 ); dc.SelectObject(pOldPen);