|
///////////////////////////////////////////
// Saves current graphical drawing object,
// selects a new one, then restores the old
// one upon destruction.
//
class AutoSelector
{
public:
AutoSelector(CDC* pDC, CGdiObject* pNew)
: m_pOld(pDC->SelectObject(pNew)),
m_pDC(pDC)
{
ASSERT(m_pOld);
ASSERT(!pNew->IsKindOf(RUNTIME_CLASS(CRgn)));
}
AutoSelector(CDC* pDC, int iStockObject)
: m_pOld(pDC->SelectStockObject(iStockObject)),
m_pDC(pDC)
{
ASSERT(m_pOld);
}
~AutoSelector()
{
m_pDC->SelectObject(m_pOld);
}
private:
AutoSelector(const AutoSelector&);
AutoSelector& operator=(const AutoSelector&);
// prevent region selection at compile-time
AutoSelector(CDC* pDC, CRgn* pRgn);
CGdiObject* m_pOld;
CDC* m_pDC;
};
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.