Sélection d'un objet graphique dans un contexte de périphérique
Cette rubrique s’applique à l’utilisation d’objets graphiques dans le contexte d’appareil d’une fenêtre. Après avoir créé un objet de dessin, vous devez le sélectionner dans le contexte de l’appareil à la place de l’objet par défaut stocké ici :
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, elle sera supprimée par la fonction membre OnIdle de la classe CWinApp
la prochaine fois que le programme obtient le temps d’inactivité. Tant que vous utilisez l’objet retourné dans SelectObject
une seule fonction sans retourner le contrôle à la boucle de message principale, vous n’aurez aucun problème.