memdc

memdc.h

#if !defined(AFX_MEMDC_H__75FED539_1CA2_4C25_920E_ABD04348B248__INCLUDED_)
#define AFX_MEMDC_H__75FED539_1CA2_4C25_920E_ABD04348B248__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// MemDC.h : header file
//
//注意:本类本不适合绘制动画时动态创建
/

class CMemDC : public CDC//从CDC类公有派生
{
// Construction
public:
 CMemDC(UINT heigh,UINT width);//构造函数,传入高和宽

// Attributes
public:

// Implementation
public:
 HBITMAP CloseMemDC();//公有成员函数,
 virtual ~CMemDC();//析构函数,虚函数

private:
 CBitmap  m_bitmap;      //私有数据成员
    CBitmap* m_pOldBitmap;//私有数据成员
 UINT m_bmpHeigh;//私有数据成员:高
 UINT m_bmpWidth;//私有数据成员:宽
};

/

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MEMDC_H__75FED539_1CA2_4C25_920E_ABD04348B248__INCLUDED_)

memdc.cpp

// MemDC.cpp : implementation file
//

#include "stdafx.h"
#include "MemDC.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// CMemDC


CMemDC::CMemDC(UINT width,UINT heigh)
{  
 CDC *pDC = CDC::FromHandle(::GetDC(GetDesktopWindow()));
 ASSERT(pDC != NULL);
    CreateCompatibleDC(pDC);
 m_bmpWidth = width;
 m_bmpHeigh = heigh;
    m_bitmap.CreateCompatibleBitmap(pDC, m_bmpWidth, m_bmpHeigh);
    m_pOldBitmap = SelectObject(&m_bitmap);
 ::ReleaseDC(GetDesktopWindow(), pDC->m_hDC);
}

CMemDC::~CMemDC()
{
 SelectObject(m_pOldBitmap);
 m_bitmap.DeleteObject();
 DeleteDC();
}
/
// CMemDC message handlers

HBITMAP CMemDC::CloseMemDC()
{
 SelectObject(m_pOldBitmap);
 return (HBITMAP)(m_bitmap.Detach());
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值