有关BitBlt()函数的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:52:33
我是一名VC爱好者,在编程的时候,发现如下代码
width=::GetSystemMetrics(SM_CXSCREEN);
height=::GetSystemMetrics(SM_CYSCREEN);
CWindowDC screenDC(NULL);
hbmp.CreateBitmap(width,height,screenDC.GetDeviceCaps(PLANES),screenDC.GetDeviceCaps(BITSPIXEL),NULL);
memDC.CreateCompatibleDC(NULL);
oldObject=memDC.SelectObject(&hbmp);
memDC.BitBlt(0,0,width,height,&screenDC,0,0,SRCCOPY);
请问,既然memDC已经将hbmp加入到自己的设备环境中,为什么还要
memDC.BitBlt()语句,将screenDC中的像素转换到memDC中去?谢谢!!

的确hbmp已经选入了它的设备上下文中,但是这张BMP是没任何数据的啊~~(或者说是全黑的)

BitBlt() 相当于画的操作。memDC已经将hbmp加入到自己的设备环境 相当于你有了笔,但是不动手画怎么会有图案呢?所以要用memDC.BitBlt()画出来

这个问题同样迷惑着我