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

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

2013-01-25 
关于设备相关位图转化为设备无关位图的疑问这是网上流传的一个截屏代码段,通过这个代码可以将设备相关位图

关于设备相关位图转化为设备无关位图的疑问
这是网上流传的一个截屏代码段,通过这个代码可以将设备相关位图转化为设备无关位图,然后通过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后才有桌面实际的图像

热点排行