【问题标题】:What type of DC is returned by calling GetDC(NULL)?调用GetDC(NULL)返回什么类型的DC?
【发布时间】:2021-06-02 01:57:56
【问题描述】:

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

hWnd

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

在页面的下方,注意以下内容:

使用普通DC绘制后,必须调用ReleaseDC函数释放DC。不必发布类和私有 DC。 ReleaseDC 必须从调用GetDC 的同一线程中调用。 DC 的数量仅受可用内存的限制。

不幸的是,对于屏幕 DC,是否需要调用 ReleaseDC() 尚不清楚,因为它的类型在任何地方都没有提及。事实上,this page 描述了五种类型的 DC;但他们都没有提到“屏幕”。

我需要在屏幕 DC 上拨打ReleaseDC() 吗?

【问题讨论】:

  • 通过排除过程,屏幕 DC 不能是 Class、Private、Window 或 Parent DC,所以它必须是 Common DC,必须释放。

标签: winapi gdi


【解决方案1】:

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

【讨论】:

  • 请注意,在类和私有 DC 上调用 ReleaseDC() 是安全的。这对他们来说是无操作的。
猜你喜欢
  • 2012-10-31
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
相关资源
最近更新 更多