/*-----*/
/* the device context dc must still exist when the pen/etc is deleted */
class PEN{public: HDC d; HPEN pen,old;
PEN(HDC dc,COLORREF col); ~PEN();};
PEN::PEN(HDC dc,COLORREF col){d=dc; pen=CreatePen(0,1,col);
old=(HPEN)SelectObject(dc,pen);};
PEN::~PEN(){SelectObject(d,old); DeleteObject(pen);};
/*-----*/
class FONT{public: HDC d; HFONT font,old;
FONT(HDC dc,HFONT f); ~FONT();};
FONT::FONT(HDC dc,HFONT f){d=dc; font=f;
old=(HFONT)SelectObject(dc,font);};
FONT::~FONT(){SelectObject(d,old);};
/*-----*/
class TEXTCOLOR{public: HDC d; COLORREF col,old;
TEXTCOLOR(HDC dc,COLORREF F); ~TEXTCOLOR();};
TEXTCOLOR::TEXTCOLOR(HDC dc,COLORREF c){d=dc; old=SetTextColor(dc,c);};
TEXTCOLOR::~TEXTCOLOR(){SetTextColor(d,old);};
E.g.
{PEN red(dc,magenta); -----------------------;}
and the pen will write in magenta to the end of the { }.