BitBlt为何不能copy图像

有个朋友问我,BitBlt的SRCCOPY应该就是复制源DC上的 内容到目的DC上,可为什么在OnPaint里面试,只是一部分?

其实, MSDN对BitBlt的介绍不够全面,BitBlt还要考虑ClipBox区域的,只有ClipBox区域的内容才能Copy,ClipBox之外的是透明的. 另外,OnPaint()中的CPaintDC dc(this); 此dc的ClipBox是更新的区域,可以用dc.GetClipBox(&rect)取得.

你可能感兴趣的:(面试)