Un carré se dessine par la séquence
MoveTo(left, top);
LineTo(right, top);
LineTo(right, bottom);
LineTo(left, bottom);
LineTo(left, top);
Ce code est générique et peut sappliquer dans nimporte quel environnement de dessin.
Jaimerais définir cette suite dinstructions applicable à toutes les classes disposant des fonctions MoveTo() et LineTo(), sans avoir à redéfinir, dans chaque classe, une fonction carré qui aurait ce même code.
Comment faire ?
Jai tenté cette ébauche de code qui ne marche pas.
void CTotoView::OnDraw(CDC* pDC)
{
if(IsPostScript)
pDC = new CDC_PS;
pDC->MoveTo(10,10);
pDC->LineTo(100,10);
pDC->LineTo(100,100);
pDC->LineTo(10,100);
pDC->LineTo(10,10);
}
Le pointeur pDC pointe sur un objet de la classe CDC et ne permet dappeler que la version CDC de MoveTo() et LineTo(), pas celle de CDC_PS.
Si CDC_PS était une classe pouvant générer des instructions PostScript, à laide de ses fonctions membres MoveTo() et LineTo(), comment pourrais-je madresser à CDC_PS pour faire mon carré plutôt quà CDC ?
Est-il possible que le pointeur pDC puisse être utilisé de façon dynamique pour pointer des objets de la class CDC ou de la classe CDC_PS ?
Merci pour vos lumières.