下面代码实现的是获取桌面并且显示到图片控件里面
CDC *pdcdesk = GetDesktopWindow()->GetWindowDC(); //获取窗口dc CDC memdc; memdc.CreateCompatibleDC(pdcdesk); //创建兼容内存DC CBitmap bmp; CRect re; GetDesktopWindow()->GetWindowRect(&re); //获取窗口大小 bmp.CreateCompatibleBitmap(pdcdesk , 400 , 300); //创建兼容位图 CBitmap *oldbitmap = memdc.SelectObject(&bmp); memdc.SetStretchBltMode(HALFTONE); //图像使用StretchBlt()之前一定定义这个 //memdc.SetStretchBltMode(BLACKONWHITE); memdc.stretchblt(0,0,400,300,pdcdesk , 0,0,re.Width(),re.Height() , SRCCOPY);//缩小图像 memdc.SelectObject(oldbitmap); ((CStatic*)GetDlgItem(IDC_PIC))->SetBitmap(bmp); //删除相关 memdc.DeleteDC(); bmp.DeleteObject();
没使用函数的时候图像是下面这样:

使用之后得到下面图像:

可以看到使用之后图片有鲜明的变化!
以上就是关于stretchblt的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-3960-2.html
@CYAdol