You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
2.4 KiB
C++
118 lines
2.4 KiB
C++
// XTPHelpers.h interface
|
|
//
|
|
// This file is a part of the XTREME CONTROLS MFC class library.
|
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
|
//
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
|
//
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
|
// SINGLE COMPUTER.
|
|
//
|
|
// CONTACT INFORMATION:
|
|
// support@codejock.com
|
|
// http://www.codejock.com
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#if !defined(__XTHELPERS_H__)
|
|
#define __XTHELPERS_H__
|
|
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
// Safely selects object into device context
|
|
template <class T>
|
|
class CXTPContextObjectHandler
|
|
{
|
|
T* m_pObject;
|
|
CDC* m_pDC;
|
|
public:
|
|
CXTPContextObjectHandler(CDC* pDC, T* object)
|
|
: m_pDC(pDC), m_pObject(pDC->SelectObject(object))
|
|
{ }
|
|
|
|
~CXTPContextObjectHandler()
|
|
{
|
|
if (m_pObject)
|
|
{
|
|
m_pDC->SelectObject(m_pObject);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Background mode context handler
|
|
class CXTPContextBkModeHandler
|
|
{
|
|
int m_nMode;
|
|
CDC* m_pDC;
|
|
public:
|
|
CXTPContextBkModeHandler(CDC* pDC, int nNewMode)
|
|
: m_pDC(pDC), m_nMode(pDC->SetBkMode(nNewMode))
|
|
{ }
|
|
|
|
~CXTPContextBkModeHandler()
|
|
{
|
|
m_pDC->SetBkMode(m_nMode);
|
|
}
|
|
|
|
};
|
|
|
|
// Text color context handler
|
|
class CXTPContextTextColorHandler
|
|
{
|
|
COLORREF m_clrFore;
|
|
CDC* m_pDC;
|
|
public:
|
|
CXTPContextTextColorHandler(CDC* pDC, int clrFore)
|
|
: m_pDC(pDC), m_clrFore(pDC->SetTextColor(clrFore))
|
|
{ }
|
|
|
|
~CXTPContextTextColorHandler()
|
|
{
|
|
m_pDC->SetTextColor(m_clrFore);
|
|
}
|
|
|
|
};
|
|
|
|
// Background color context handler
|
|
class CXTPContextBkColorHandler
|
|
{
|
|
COLORREF m_clrBack;
|
|
CDC* m_pDC;
|
|
public:
|
|
CXTPContextBkColorHandler(CDC* pDC, int clrBack)
|
|
: m_pDC(pDC), m_clrBack(pDC->SetBkColor(clrBack))
|
|
{ }
|
|
|
|
~CXTPContextBkColorHandler()
|
|
{
|
|
m_pDC->SetBkColor(m_clrBack);
|
|
}
|
|
};
|
|
|
|
// Handles viewport origin
|
|
class CXTPContextViewPortOrgHandler
|
|
{
|
|
CPoint m_pointOrigin;
|
|
CDC* m_pDC;
|
|
public:
|
|
CXTPContextViewPortOrgHandler(CDC* pDC, const CPoint& pointOrigin)
|
|
: m_pDC(pDC), m_pointOrigin(pDC->SetViewportOrg(pointOrigin))
|
|
{ }
|
|
|
|
~CXTPContextViewPortOrgHandler()
|
|
{
|
|
m_pDC->SetViewportOrg(m_pointOrigin);
|
|
}
|
|
};
|
|
|
|
#endif // #if !defined(__XTHELPERS_H__)
|
|
|
|
//}}AFX_CODEJOCK_PRIVATE
|