CMemoryDC双缓冲.docx

上传人:夏** 文档编号:563709842 上传时间:2023-12-10 格式:DOCX 页数:4 大小:16.92KB
返回 下载 相关 举报
CMemoryDC双缓冲.docx_第1页
第1页 / 共4页
CMemoryDC双缓冲.docx_第2页
第2页 / 共4页
CMemoryDC双缓冲.docx_第3页
第3页 / 共4页
CMemoryDC双缓冲.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《CMemoryDC双缓冲.docx》由会员分享,可在线阅读,更多相关《CMemoryDC双缓冲.docx(4页珍藏版)》请在金锄头文库上搜索。

1、声明CMemoryDC类的头文件MemoryDC.h如下:#pragma once#include Afxwin.hclass CMemoryDCpublic: CMemoryDC(CDC *dc, RECT * rect,bool autoRender = false); CMemoryDC(void); bool IsOK(); void Render(CDC * p_objectDC = NULL); CDC* GetMemoryDC(); operator CDC * ();private: bool m_bAutoRender; CRect m_DCRect; CDC* m_pOri

2、ginalDC; CDC m_MemoryDC; CBitmap m_MemoryBmp;类的实现文件CMemoryDC.cpp如下:#include .MemoryDC.hCMemoryDC:CMemoryDC(CDC *dc, RECT * rect, bool autoRender) m_bAutoRender = autoRender; m_pOriginalDC = dc; if (dc=NULL | rect=NULL) return; if (!m_MemoryDC.CreateCompatibleDC(dc) return; m_DCRect.SetRect(rect-left

3、, rect-top, rect-right, rect-bottom); if (!m_MemoryBmp.CreateCompatibleBitmap(dc, m_DCRect.Width(), m_DCRect.Height() return; m_MemoryDC.SelectObject(m_MemoryBmp);CMemoryDC:CMemoryDC(void) if (m_bAutoRender) Render(); if (m_MemoryDC.m_hDC!=NULL) m_MemoryDC.DeleteDC(); if (m_MemoryBmp.m_hObject!=NULL

4、) m_MemoryBmp.DeleteObject();bool CMemoryDC:IsOK() return m_MemoryDC.m_hDC!=NULL & m_MemoryBmp.m_hObject != NULL;void CMemoryDC:Render(CDC * p_objectDC) if (!IsOK() return; CDC * pDC = (p_objectDC=NULL ? m_pOriginalDC : p_objectDC); CSize Size = m_MemoryDC.GetViewportExt() ; pDC-BitBlt( m_DCRect.lef

5、t, m_DCRect.top, m_DCRect.Width(), m_DCRect.Height(), &m_MemoryDC, 0,0, SRCCOPY);CDC* CMemoryDC:GetMemoryDC() return & m_MemoryDC;CMemoryDC:operator CDC * () return & m_MemoryDC;使用这个类可以大大简化内存DC的创建操作。如果我们在窗口消息WM_PAINT的响应函数中使用内存DC,只要用如下这样简便的代码便可实现:CRect Rect;GetClientRect(Rect);CPaintDC dc(this); / device context for painting CMemoryDC MemDC(&dc, Rect, true); if (MemDC.IsOK() / 使用MemDC画窗口 / MemDC析构时会自动把图像复制到dc,无需其它操作使用CMemoryDC创建内存DC防止窗口闪烁,编程的代码和不使用内存DC时相比,数量和复杂性几乎没有增加。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号