首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

双缓冲图像展示

2013-03-06 
双缓冲图像显示在picture控件上利用双缓冲显示图片,以前没用过,求高手指教哪里写得有问题,为什么显示过程

双缓冲图像显示
在picture控件上利用双缓冲显示图片,以前没用过,求高手指教哪里写得有问题,为什么显示过程中,都是黑漆漆的一片
CBitmap* bmp = pDlg->IplImage2CBitmap(pDlg->dst);
CDC *pDC = pDlg->GetDlgItem(IDC_STATIC_PIC)->GetDC();//得到picture控件的dc
pDlg->GetDlgItem(IDC_STATIC_PIC)->GetClientRect(&rect);//获取可显示的矩形区域
     
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);//创建一个内存环境,以便在内存中保存位图,并与指定的窗口设备环境兼容
dcMem.SelectObject(&bmp);//将实际的位图点入到设备内存环境

//创建于窗口一样大的兼容位图
CBitmap bmp1;
bmp1.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());//创建一个内存环境,以便在内存中保存位图,并与指定的窗口设备环境兼容

CDC BkDC;
BkDC.CreateCompatibleDC(pDC);//创建一个内存环境,以便在内存中保存位图,并与指定的窗口设备环境兼容
BkDC.SelectObject(bmp1);//将创建的位图调入到设备内存环境

//在位图缓冲区上画图 BkDC.BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);//从原设备中复制位图到目标设备

 //把缓冲区中的图贴到控件上
pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&BkDC,0,0,SRCCOPY);//从原设备中复制位图到目标设备
[解决办法]
首先,我这个肯定是双缓冲,你没看见 画背景 和 画文字 都在memdc上吗
===============
它这个没有文字,只是贴图,普通的贴图也是这样写的。

热点排行