2015-11-11 30 views
0

传递null到CreateCompatibleDC()时,当你调用CreateCompatibleDC(NULL),你得到一个处理应用程序的当前画面,在MSDN上解释什么是返回:在WINAPI

如果该句柄为NULL,则函数创建与应用程序的当前屏幕兼容的内存DC

我想弄清楚“应用程序的当前屏幕”是什么意思?

我看到它的方式,它可以是当前活动屏幕的句柄,也可以是包含应用程序所有可见部分的句柄。

说我有一个窗口和一个模态子窗口(弹出窗口),我会得到一个DC只有模态子或全部可见区域?

+4

CCDC创建*内存*上下文。与“当前活动屏幕”或“所有可见部分”无关。它的像素格式与当前屏幕兼容,在所有现代机器上均为32bpp,因此,无论您如何处理它,都会尽快使屏幕闪烁。 –

+2

http://www.winprog.org/tutorial/bitmaps.html – xxbbcc

+0

如果您需要特定窗口的设备上下文,请使用'GetDC'。 – xxbbcc

回答

4

简短的回答是:一个内存DC的句柄。

更具体地说:CreateCompatibleDC(NULL)返回存储设备上下文的句柄,其格式与GetDC(NULL)将返回的设备上下文相同。但情况并非如此。绘制它实际上并没有在屏幕上显示任何内容。

内存DC通常用于在内存中创建位图等内容。