chenluhua1980
2025-11-14 c928b27306747319c3692879ab30d2508ca00ffc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
#include <afxwin.h>  // MFC ºËÐÄÍ·Îļþ
 
// CServoMemDC£ºË«»º³å»æÍ¼·â×°ÀࣨÏû³ýÉÁ˸£©
class CServoMemDC : public CDC
{
public:
    CServoMemDC(CDC* pDC, const CRect* pRect = nullptr); // ¹¹Ô죺´«ÈëÄ¿±ê DC ºÍÇøÓò
    ~CServoMemDC();                                      // Îö¹¹£º×Ô¶¯¿½±´µ½Ä¿±ê DC
 
    CServoMemDC* operator->();
    operator CDC* ();
 
private:
    CBitmap m_bitmap;        // ÓÃÓÚÄÚ´æ DC µÄλͼ
    CBitmap* m_pOldBitmap;   // ¾Éλͼ
    CDC* m_pDC;              // Ô­Ê¼»æÍ¼ DC£¨´°¿Ú£©
    CRect m_rect;            // »æÍ¼ÇøÓò
    BOOL m_bMemDC;           // ÊÇ·ñÆôÓÃÁËÄÚ´æ DC£¨CreateCompatibleDC ³É¹¦£©
};