请教一个双缓冲和gdiplus的有关问题
请问一个双缓冲和gdiplus的问题
我用显示一块位图,然后在位图上面显示透明png,我使用双缓冲把位图放在到memdc上,然后在memdc上用gdiplus 绘制一个png图片(透明),怎么最后闪烁比较高,尤其是拖动滚动条的时候,应该怎么做才是正确的方式呀?
------解决方案--------------------
WM_ERASEBKGND 直接返回TRUE
------解决方案--------------------
------解决方案--------------------
可以在贴图之前填充背景色
------解决方案--------------------
- C/C++ code
CBitmap m_bitmap; CDC memdc; m_bitmap.CreateBitmap(pImage->w, pImage->h, 1, 32, pImage->samples); BITMAP bm ; m_bitmap.GetBitmap(&bm); memdc.CreateCompatibleDC(pDC); CBitmap * pOld = memdc.SelectObject(&m_bitmap); HDC dc = memdc.GetSafeHdc(); //因为需要显示透明位图,我这里使用gdi+ 在memdc绘制 Graphics grapic(dc); Image image(L"c:\\2.png",FALSE); grapic.DrawImage(&image, 0, 0, 612, 792); pDC->StretchBlt(0,0,pImage->w,pImage->h,&memdc,0,0, bm.bmWidth, bm.bmHeight,SRCCOPY); memdc.SelectObject(pOld); memdc.DeleteDC(); m_bitmap.DeleteObject(); ReleaseDC(pDC);
我用显示一块位图,然后在位图上面显示透明png,我使用双缓冲把位图放在到memdc上,然后在memdc上用gdiplus 绘制一个png图片(透明),怎么最后闪烁比较高,尤其是拖动滚动条的时候,应该怎么做才是正确的方式呀?
------解决方案--------------------
WM_ERASEBKGND 直接返回TRUE
------解决方案--------------------
------解决方案--------------------
可以在贴图之前填充背景色
------解决方案--------------------