WINCE界面开发详解-4

WINCE界面开发详解-4

ID:37714030

大小:21.26 KB

页数:6页

时间:2019-05-29

WINCE界面开发详解-4_第1页
WINCE界面开发详解-4_第2页
WINCE界面开发详解-4_第3页
WINCE界面开发详解-4_第4页
WINCE界面开发详解-4_第5页
资源描述:

《WINCE界面开发详解-4》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、CCEMemDC类内存场景DC,不是直接从CDC继承,而是成员里面有CDC,把场景DC进行简单的封装后,可以在使用的时候少写一些必须的参数,别外可以在构析的时候准确的卸载所有的GDI对象.1.成员变量CDCm_memDC;//内存DCBITMAPm_bm;//保存选用图片的信息CMyBitmapm_memBmp;//内存BMPCBitmap*m_pBitmapOld;//原来场景指针CDC*m_pDC;//兼容场景指针CRectm_rect;//目标场景的目标位置BOOLm_bCreateDC;//是否已经创建DCCOLORR

2、EFm_bkColor;//默认的DC前景颜色,如果创建DC没有图片,则用默认的颜色进行填充。2.成员函数2.1构造函数CCEMemDCCCEMemDC::CCEMemDC(BOOLbHinstanceDll):m_memBmp(bHinstanceDll){m_pDC=NULL;m_pBitmapOld=NULL;m_bCreateDC=FALSE;m_bkColor=RGB(255,255,255);//白色}2.2构析函数CCEMemDC::~CCEMemDC(void){DestructionMemDC();}2.3D

3、estructionMemDCvoidCCEMemDC::DestructionMemDC(){if(m_bCreateDC){m_memDC.SelectObject(m_pBitmapOld);if(m_memBmp.m_hObject)m_memBmp.DeleteObject();if(m_memDC.m_hDC)m_memDC.DeleteDC();m_pBitmapOld=NULL;m_bCreateDC=FALSE;}}2.4CreateDC//如果有图片按图片大小创建BOOLCCEMemDC::CreateDC

4、(CDC*pDCS,CRectrect,LONGlIDBMP,COLORREFcol){BOOLbRes=FALSE;CDC*pDC=pDCS;CDCdisplayDC;m_bkColor=col;if(pDCS==NULL){if(displayDC.CreateDC(L"DISPLAY",NULL,NULL,NULL)){pDC=&displayDC;}else{returnFALSE;}}//如果没有指定兼容的DC,则使用桌面DC,一般来说都互相兼容if(pDC){DestructionMemDC();//如果已经创建过

5、,则把原来的DC除掉m_rect=rect;m_pDC=pDC;if(m_memDC.CreateCompatibleDC(pDC)){if(lIDBMP!=0)//如果根据图片大小创建DC{if(m_memBmp.LoadBitmapSelf(lIDBMP)){m_memBmp.GetBitmap(&m_bm);m_rect.right=m_rect.left+m_bm.bmWidth;m_rect.bottom=m_rect.top+m_bm.bmHeight;m_pBitmapOld=m_memDC.SelectObje

6、ct(&m_memBmp);bRes=TRUE;m_bCreateDC=TRUE;}}else{if(m_memBmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height())){m_memBmp.GetBitmap(&m_bm);m_pBitmapOld=m_memDC.SelectObject(&m_memBmp);m_memDC.FillSolidRect(CRect(0,0,m_rect.Width(),m_rect.Height()),m_bkColor);bRes

7、=TRUE;m_bCreateDC=TRUE;}}}//ifmemDCCreate}//ifpDCif(pDCS==NULL){displayDC.DeleteDC();}returnbRes;}2.5DrawDC    把memDC中的内容块复制到指定的目标DC上,如果没有指定目标DC,看创建的兼容DC是否存在,如果存在则画到兼容DC上。voidCCEMemDC::DrawDC(CDC*pDC,CRect*rectDest,CRect*rectSrc){if(m_bCreateDC){CRectdestRect(m_rect

8、);CRectsrcRect(0,0,0,0);if(rectDest){destRect=*rectDest;}if(rectSrc){srcRect=*rectSrc;}if(pDC){pDC->BitBlt(destRect.left,destRect.top,dest

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。