来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC
Posted
技术标签:
【中文标题】来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC【英文标题】:ReleaseDC from CWnd overrides ReleaseDC from winuser 【发布时间】:2015-12-31 03:19:21 【问题描述】:我创建了一个简单的应用程序来将 opengl 与 MFC 结合使用。问题是我有以下代码
ReleaseDC(m_hWnd,m_hDC);
根据https://msdn.microsoft.com/en-us/library/windows/desktop/dd162920(v=vs.85).aspx,这似乎是正确的
即使智能感知也告诉我我选择了正确的功能
问题是,一旦我键入函数 ReleaseDC,编译器就会自动查找此处引用的 CWnd::ReleaseDC https://msdn.microsoft.com/en-us/library/ek0dh9wd.aspx。显然这给了我一个编译错误。我对mfc了解不多,欢迎任何帮助。
我正在使用 Visual Studio 2015 更新 1。
【问题讨论】:
您也可以查找CClientDC dc(this);
,它是GetDC
的MFC 包装器,它具有自动清理功能
【参考方案1】:
您可能从 CWnd 派生类型的成员函数内部调用 ReleaseDC(m_hWnd,m_hDC);
,它声明了成员函数 ReleaseDC
。
要调用全局命名空间ReleaseDC
,您必须对其进行适当的限定:
::ReleaseDC(m_hWnd,m_hDC);
【讨论】:
以上是关于来自 CWnd 的 ReleaseDC 覆盖来自 winuser 的 ReleaseDC的主要内容,如果未能解决你的问题,请参考以下文章
将来自 karma-coverage 的 istanbul 测试覆盖率与来自其他来源的覆盖率合并