MFC でのストロークの描画についていくつか質問があります。クラス CStroke が事前に宣言されているとします。サンプルコードを以下に示します。
BOOL CStroke::DrawStroke(CDC* pDC)
{
CPen penStroke;
if ( !penStroke.CreatePen(PS_SOLID, m_nPenWidth, m_color) )
return FALSE;
CPen *pOldPen = pDC->SelectObject(&penStroke);
pDC->MoveTo(m_pointArray[0]);
for( int i = 0; i < m_pointArray.GetSize(); i++ )
{
pDC->LineTo(m_pointArray[i]);
}
pDC->SelectObject(pOldPen);
return TRUE;
}
私の質問は次のとおりです。
- なぜ pOldPen が必要なのですか?
pDC->SelectObject(pOldPen)
最後に pOldPen を選択する必要があるのはなぜですか?