小生在学习过程中遇到一段代码。
功能是画一条线!
void CStrokeView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(GetCapture()!=this)
return;
m_pStrokeCur->m_pointArray.Add(point); CClientDC dc(this); CPen* pPenCur=dc.SelectObject( GetDocument()->GetCurPen() );
dc.MoveTo(m_ptPrev);
dc.LineTo(point);
dc.SelectObject( pPenCur );//!!!!!!!!!!!!!!!!!!!
m_ptPrev=point; return;
}
有一个地方不清楚!
为什么画完一条线之后,要再次dc.SelectObject();呢?我曾经试着,把这句话注释掉,没有什么问题!请各位大虾,给个说法!谢谢先!
功能是画一条线!
void CStrokeView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(GetCapture()!=this)
return;
m_pStrokeCur->m_pointArray.Add(point); CClientDC dc(this); CPen* pPenCur=dc.SelectObject( GetDocument()->GetCurPen() );
dc.MoveTo(m_ptPrev);
dc.LineTo(point);
dc.SelectObject( pPenCur );//!!!!!!!!!!!!!!!!!!!
m_ptPrev=point; return;
}
有一个地方不清楚!
为什么画完一条线之后,要再次dc.SelectObject();呢?我曾经试着,把这句话注释掉,没有什么问题!请各位大虾,给个说法!谢谢先!
打个比方,你放学打扫教室拿洒水壶洒水,洒水壶是公家的,你用的时候会在里面灌水,地洒完后壶里可能还有水,你就得把水倒掉方便明天别的同学再去洒。大致这个理