我想开发一个程序,ID是一张卡片,因为它是在另一个正在运行的程序中播放的,比如扑克或心形游戏等等。我首先尝试获取已经运行的游戏程序所需的信息,并且我从一开始就遇到了问题。我正在运行MSVC ++ 2013并开发MFC应用程序。现在我正在玩Hearts游戏,这是代码:
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就好了,代码的工作原理取决于我是否打开了Heart。但是行GetWindowRect(hwnd, &rect);
不会编译说
“错误C2660:'CWnd :: GetWindowRect':函数不带2个参数”。
有一个GetWindowRect
函数只有rect参数,但是获取我正在处理的程序窗口的属性。在GetWindowRect
上有很多文档显示了上面的两个参数,但是如何调用该子例程呢?
答案 0 :(得分:4)
当你在MFC窗口类中时,你正在调用CWnd::GetWindowRect
函数 - 你想调用Win32 API中的那个,所以:
::GetWindowRect(hwnd, &rect);
其中::
范围解析运算符(左侧没有名称空间或类名)表示在全局范围内调用该函数。