关于GDI下使用双缓冲,但是图片显示不出来,求教
如题,我是WIN32项目,练习使用双缓冲显示图片。显示部分代码如下HBITMAPhbitmap;HBITMAPtemp_bitmap;HDCdc;//屏幕DCHDCtem...
如题,我是WIN32项目,练习使用双缓冲显示图片。
显示部分代码如下
HBITMAP hbitmap;
HBITMAP temp_bitmap ;
HDC dc;//屏幕DC
HDC temp_dc;//缓冲DC
HDC pic_dc;//图片DC
temp_bitmap=CreateCompatibleBitmap(PlatForm::instance()->GetHDC(),win.right-win.left,win.bottom-win.top);
SelectObject(PlatForm::instance()->Get_temp_dc(),temp_bitmap);
hbitmap=(HBITMAP)LoadImage(NULL,"BG_6.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(hbitmap,sizeof(BITMAP),&bitmap);
SelectObject(pic_dc,hbitmap);
BitBlt(temp_dc,0,0,bitmap.bmWidth,bitmap.bmHeight,pic_dc,0,0,SRCCOPY);
BitBlt(dc,0,0,win.right-win.left,win.bottom-win.top,pic_dc,0,0,SRCCOPY);
但是从缓冲DC绘制到屏幕上就出不来呢。去掉最下面那句,直接绘制到屏幕就能显示出来,请教 展开
显示部分代码如下
HBITMAP hbitmap;
HBITMAP temp_bitmap ;
HDC dc;//屏幕DC
HDC temp_dc;//缓冲DC
HDC pic_dc;//图片DC
temp_bitmap=CreateCompatibleBitmap(PlatForm::instance()->GetHDC(),win.right-win.left,win.bottom-win.top);
SelectObject(PlatForm::instance()->Get_temp_dc(),temp_bitmap);
hbitmap=(HBITMAP)LoadImage(NULL,"BG_6.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
GetObject(hbitmap,sizeof(BITMAP),&bitmap);
SelectObject(pic_dc,hbitmap);
BitBlt(temp_dc,0,0,bitmap.bmWidth,bitmap.bmHeight,pic_dc,0,0,SRCCOPY);
BitBlt(dc,0,0,win.right-win.left,win.bottom-win.top,pic_dc,0,0,SRCCOPY);
但是从缓冲DC绘制到屏幕上就出不来呢。去掉最下面那句,直接绘制到屏幕就能显示出来,请教 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询