MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 关于设备相关位图转化为设备无关位图的疑问,该怎么

关于设备相关位图转化为设备无关位图的疑问,该怎么解决

www.MyException.Cn  网友分享于:2013-01-26  浏览:6次
关于设备相关位图转化为设备无关位图的疑问
这是网上流传的一个截屏代码段,通过这个代码可以将设备相关位图转化为设备无关位图,然后通过Socket传输
char dot[1572864]; //1024*768*2
CBitmap bmp; //内存位图
CDC wdc; //设备环境
CDC* pDC; //指向桌面窗口的设备环境指针
……
static CWindowDC ddc(GetDesktopWindow()); //引用桌面窗口指针定义对象ddc 
pDC=&ddc; //将指针pdc指向ddc 
wdc.CreateCompatibleDC(pDC); //建立与ddc兼容的设备环境
bmp.CreateCompatibleBitmap(pDC,1024,768); //建立与ddc兼容的位图 
wdc.SelectObject(&bmp); //选择bmp
……
wdc.BitBlt(0,0,1024,768,pDC,0,0,SRCCOPY); //把桌面图像复制到wdc的bmp中


疑问如下:
    wdc通过SelectOject不是已经选择了兼容的位图了吗?那么wdc的资料里面不就含有了bmp了吗?为什么还要用BitBlt将图像复制到wdc中呢?这样不会多余吗?
------解决方案--------------------
wdc通过SelectOject不是已经选择了兼容的位图了吗?那么wdc的资料里面不就含有了bmp了吗?
bmp刚创建时, 是没内容的, 全黑的, BitBlt后才有桌面实际的图像

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有