C++绘制同一背景图片时占用内存不断增加,求大神帮帮忙
                 	
                        发表在C++图书答疑
                        2019-08-24                                                
                    		
                            《C++项目开发实战入门》第1章  坦克动荡游戏                            26页-30页                    	
                        
                        
                    
                    
                    	是否精华
                    	是
                    	否
                    
                    
                    
                            版块置顶:
                            是
                            否
                        
                    void Game::Drawfps(Graphics& graphic) {
	static int fps = 0;
	m_fps++;
	static DWORD dwLast = GetTickCount();
	if (GetTickCount() - dwLast >= 1000)
	{
		fps = m_fps;
		m_fps = 0;
		dwLast = GetTickCount();
	}
	//输出帧率
	CString s;
	s.Format(_T("帧率:%d"), fps);
	SolidBrush brush(Color::Red);
	Gdiplus::Font font(_T("宋体"), 10.0);
	CRect rect;
	::GetClientRect(m_hwnd, &rect);
	PointF origin(static_cast<float>(rect.right - 58), static_cast<float>(rect.top + 2));
	graphic.DrawString(s.GetString(), -1, &font, origin, &brush);
}
void Game::GameRunDraw() {
	HDC hdc = ::GetDC(m_hwnd);
	//客户区大小
	CRect rc;
	GetClientRect(m_hwnd, &rc);
	CDC* dc = CClientDC::FromHandle(hdc);
	//双缓冲绘图
	CDC m_dcMemory;
	CBitmap bmp;
	bmp.CreateCompatibleBitmap(dc, rc.Width(), rc.Height());
	m_dcMemory.CreateCompatibleDC(dc);
	CBitmap* pOldBitmap = m_dcMemory.SelectObject(&bmp);
	//构造对象
	Graphics gh(m_dcMemory.GetSafeHdc());
	//清除背景
	gh.Clear(Color::White);
	gh.ResetClip();
	//画入内存
	Drawfps(gh);
	//画出一幅图片
	CRect rect;
	GetClientRect(m_hwnd, rect);
	//载入图片
	Gdiplus::Image* img = Image::FromFile(_T("res\\menu_background.png"));
	//画出图片
	gh.DrawImage(img, rect.left, rect.top, rect.Width(), rect.Height());
	//输出到屏幕
	::BitBlt(hdc, 0, 0, rc.Width(), rc.Height(), m_dcMemory.GetSafeHdc(), 0, 0, SRCCOPY);
	dc->DeleteDC();
}这段代码是呈现窗体背景图片的,程序目前为止只到了显示背景图片这个阶段,但是程序运行的时候我看到visual studio中占用的内存不断增加,并且过了大约半分钟之后程序就卡死了。这该怎么办啊?求大神解决。

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
                







 
                     
                     
					 
						 
						 
						 
						