我想开发一个程序,其 ID 是一张牌,因为它在另一个正在运行的程序(例如扑克或红心游戏或其他程序)中播放。我首先尝试获取有关已运行的游戏程序的所需信息,但我从一开始就遇到了问题。我正在运行 MSVC++ 2013 并开发 MFC 应用程序。现在我正在玩红心大战游戏,代码如下:
HWND hwnd = FindWindowA(NULL, "Hearts");
if (hwnd == NULL)
{ /* window not found*/
}
else
{ /* window was found */
RECT rect;
GetWindowRect(hwnd, &rect);
int width = rect.right - rect.left;
int height = rect.bottom - rect.top;
}
所以我得到 hwnd 就很好,代码的工作原理取决于我是否打开了 Hearts。但线GetWindowRect(hwnd, &rect);
不会编译说
“错误 C2660:'CWnd::GetWindowRect':函数不接受 2 个参数”。
有一个GetWindowRect
函数只有 rect 参数,但获取我正在处理的程序窗口的属性。有很多关于GetWindowRect
它显示了上面的两个参数,但是如何调用该子例程?
当您在 MFC 窗口类中时,您正在调用CWnd::GetWindowRect
函数 - 您想调用 Win32 API 中的函数,因此:
::GetWindowRect(hwnd, &rect);
哪里的::
作用域解析运算符(左侧没有命名空间或类名)表示在全局作用域中调用该函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)