关于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绘制到屏幕上就出不来呢。去掉最下面那句,直接绘制到屏幕就能显示出来,请教
展开
 我来答
金色潜鸟
推荐于2016-05-05 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5694万
展开全部
双缓冲 要调
BOOL WINAPI SwapBuffers( HDC hdc );
交换前后景。
通常,背景上绘图,前景显示,用于动态画图。
追问
我对双缓冲的理解就是利用2个DC。先 把图片绘制到缓冲DC,然后再通过缓冲DC绘制到屏幕DC上,所以实现上我用了 2个BitBlt,不知道是不是实现有问题,图片就是初不来,还有请问下你说的那个函数,如何使用呢、?何时使用呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式