CDC* pMem=new CDC;
CBitmap* pBmp=new CBitmap;
CBitmap* pOldBmp;
//CDC* pDC=GetDC();
CRect rectTemp(0,0,g_MapWidth,g_MapHeight);//为绘图区域
pMem->CreateCompatibleDC(pDC);
pBmp->CreateCompatibleBitmap(pDC, rectTemp.Width(), rectTemp.Height());
pOldBmp = pMem->SelectObject(pBmp);
//绘图过程~~
pDC->BitBlt(rectTemp.left,rectTemp.top,rectTemp.Width(),rectTemp.Height(),pMem,0,0,SRCCOPY);
上面代码的大概意思就是先自己创建一幅位图,然后在这幅位图上画东西,然后在显示出来,因为这样的话,这些过程就能在内存里面完成了,动画就不会出现闪烁的情况~~
但问题是如果我希望在这位图上画另外的位图,应该怎么做?
或者说如何对这个位图的基础上再显示一个位图?(也要在内存里面处理)
CBitmap* pBmp=new CBitmap;
CBitmap* pOldBmp;
//CDC* pDC=GetDC();
CRect rectTemp(0,0,g_MapWidth,g_MapHeight);//为绘图区域
pMem->CreateCompatibleDC(pDC);
pBmp->CreateCompatibleBitmap(pDC, rectTemp.Width(), rectTemp.Height());
pOldBmp = pMem->SelectObject(pBmp);
//绘图过程~~
pDC->BitBlt(rectTemp.left,rectTemp.top,rectTemp.Width(),rectTemp.Height(),pMem,0,0,SRCCOPY);
上面代码的大概意思就是先自己创建一幅位图,然后在这幅位图上画东西,然后在显示出来,因为这样的话,这些过程就能在内存里面完成了,动画就不会出现闪烁的情况~~
但问题是如果我希望在这位图上画另外的位图,应该怎么做?
或者说如何对这个位图的基础上再显示一个位图?(也要在内存里面处理)
解决方案 »
- 请教关于visual c++开发时创建的类怎么删除?
- Microsoft Visual C++ 2005 的堆栈窗口如何查看
- 远线程问题~~~~~~~~~~
- 一个关于做COM插件的问题!大家近来讨论一下!
- 有两个EDITBOX,怎么把它们关联起来呢?我要在第一个EDITBOX里输入内容时,第二个EDITBOX就被激活
- 在程序中怎么打开"网络和拨号连接"界面,然后得到右键菜单的句柄
- 在win32程序如何使用ADO??
- 这个工程怎样做阿!?!
- ^^^^^^^^^^^^^^^一个程序员眼里的CSDN^^^^^^^^^^^^^^^
- fatal error LNK1000
- 请教一个异步I/O(Overlapped I/O)的问题.
- 求《windwos程序设计》和《深入浅出MFC》的配书光盘资料!谢谢!!!
如果我想在selectObject之前修改位图的大小就是还没选到DC里面之前改变位图的尺寸,应该这么做?