You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MFC按钮点击函数中调用winuser.h的GetDesktopWindow而非CWnd同名方法

问题解决方法

要明确指定调用全局命名空间下的Win32 API,只需在函数名前添加**全局作用域解析符::**即可,修改后的代码如下:

HWND hDesktopWnd = ::GetDesktopWindow();
HDC hDesktopDC = ::GetDC(hDesktopWnd);

补充说明

  • ::是C++的作用域解析运算符,当运算符左侧没有指定类名或命名空间名时,代表指向最外层的全局命名空间,刚好匹配winuser.h中定义的Win32 API的作用域。
  • 该写法是MFC开发中的通用规范,所有遇到MFC类成员方法和Win32全局API同名冲突的场景(例如SendMessage、ReleaseDC、MoveWindow等),都可以通过加::前缀的方式解决。

内容的提问来源于stack exchange,提问作者Keve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:06:04