调用GetDC(NULL)会返回什么类型的直流设备上下文(DC)?

6
Windows API函数GetDC()接受一个参数:

hWnd

要检索其DC的窗口的句柄。如果该值为NULL,则GetDC会检索整个屏幕的DC。

页面下方进一步说明如下:

使用公共DC绘制后,必须调用ReleaseDC函数释放DC。类和私有DC无需释放。必须从调用GetDC的同一线程中调用ReleaseDC。可使用的DC数仅受可用内存限制。

不幸的是,在任何地方都没有提到屏幕DC的类型,因此不清楚是否需要调用ReleaseDC()。事实上,此页面描述了五种类型的DC,但其中没有提及“屏幕”。
在屏幕DC上需要调用ReleaseDC()吗?

2
通过排除法,屏幕DC不能是类、私有、窗口或父级DC,因此它必须是普通DC,并且必须被释放。 - Remy Lebeau
1个回答

6

屏幕DC不是类DC,也不是私有DC,所以需要释放。


3
请注意,对于类和私有 DC,调用 ReleaseDC() 是安全的。对于它们来说,这是一个无操作。 - Remy Lebeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接