Sélectionner un objet graphique dans un contexte de périphérique
Cette rubrique s'applique à utiliser les objets graphiques dans le contexte du périphérique d'une fenêtre.Après avoir créez un objet drawing, vous devez le sélectionner dans le contexte de périphérique à la place de l'objet par défaut stocké à cet endroit :
void CNewView::OnDraw(CDC* pDC)
{
CPen penBlack; // Construct it, then initialize
if(penBlack.CreatePen(PS_SOLID, 2, RGB(0,0,0)))
{
// Select it into the device context
// Save the old pen at the same time
CPen* pOldPen = pDC->SelectObject(&penBlack);
// Draw with the pen
pDC->MoveTo(20,20);
pDC->LineTo(40,40);
// Restore the old pen to the device context
pDC->SelectObject(pOldPen);
}
else
{
// Alert the user that resources are low
}
}
Durée de vie des objets graphiques
L'objet graphique retourné par SelectObject est « temporaire. » Autrement dit, il sera supprimé par la fonction membre d' OnIdle de la classe CWinApp la prochaine fois que le programme reçoit la durée d'inactivité.Lorsque vous utilisez l'objet retourné par SelectObject dans une fonction unique sans retourner le contrôle à la boucle de message principale, vous n'aurez aucun problème.