⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cqmemdc.h

📁 对日本KSG震动探测仪器编写的伴侣服务代码
💻 H
字号:
/*---------------------------------------------*/
//	奣梫
//		Memory Device Context Class
//	嶌惉幰
//		Masao Kobori
/*---------------------------------------------*/
#if !defined(AFX_CQMEMDC_H__CA1D3541_7235_11D1_ABBA_00A0243D1382__INCLUDED_)
#define AFX_CQMEMDC_H__CA1D3541_7235_11D1_ABBA_00A0243D1382__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

/*---------------------------------------------*/
//	1.擔杮岅柤
//		Memory Device Context Class
//	2.奣梫
//		Memory Device Context Class
/*---------------------------------------------*/
class CCqMemDC : public CDC
{
public:
	// constructor sets up the memory DC
	CCqMemDC(CDC* pDC, CRect pRect) : CDC()
	{
		ASSERT(pDC != NULL);

		m_pDC = pDC;
		m_pOldBitmap = NULL;
		m_bMemDC = !pDC->IsPrinting();

		if (m_bMemDC) {		// Create a Memory DC
			//pDC->GetClipBox(&m_Rect);
			m_Rect = pRect;
			CreateCompatibleDC(pDC);
			m_Bitmap.CreateCompatibleBitmap(pDC, m_Rect.Width(), m_Rect.Height());
			m_pOldBitmap = SelectObject(&m_Bitmap);
			SetWindowOrg(m_Rect.left, m_Rect.top);
		}
		else {				// Make a copy of the relevent parts of the current DC for printing
			m_bPrinting = pDC->m_bPrinting;
			m_hDC		= pDC->m_hDC;
			m_hAttribDC = pDC->m_hAttribDC;
		}
	}
	// Destructor copies the contents of the mem DC to the original DC
	~CCqMemDC()
	{
		if (m_bMemDC) {
			// Copy the offscreen bitmap onto the screen.
			m_pDC->BitBlt(m_Rect.left, m_Rect.top, m_Rect.Width(), m_Rect.Height(),
							this, m_Rect.left, m_Rect.top, SRCCOPY);
			// Swap back the original bitmap.
			SelectObject(m_pOldBitmap);
		}
		else {
			// All we need to do is replace the DC with an illegal value,
			// this keeps us from accidently deleting the handles associated with
			// the CDC that was passed to the constructor.
			m_hDC = m_hAttribDC = NULL;
		}
	}
	// Allow usage as a pointer
	CCqMemDC* operator->() { return this; }
	// Allow usage as a pointer
	operator CCqMemDC*() { return this ;}

private:
	CBitmap		m_Bitmap;						// Offscreen bitmap
	CBitmap*	m_pOldBitmap;					// bitmap originally found in CMemDC
	CDC*		m_pDC;							// Saves CDC passed in constructor
	CRect		m_Rect;							// Rectangle of drawing area.
	BOOL		m_bMemDC;						// TRUE if CDC really is a Memory DC.
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CQMEMDC_H__CA1D3541_7235_11D1_ABBA_00A0243D1382__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -