0

我需要找到控件的 x 和 y 坐标,但我不知道从哪里开始。我在互联网上找到的唯一解决方案使用 MFC,我想避免使用它。那么,有没有办法不使用 MFC 来查找控件的坐标呢?

使用 FindWindow 查找控件:

    RECT cr;
    HWND chWnd   =   FindWindow("SunAwtCanvas", NULL);
    GetWindowRect(chWnd, &cr);
    cw   =   cr.right;
    ch   =   cr.bottom;
    cx   =   cr.left;
    cy   =   cr.top;
    cout << chWnd << endl;

当它应该具有控件的 hWnd 时,chWnd 为 0。

4

2 回答 2

1

您获取 HWND 的代码很糟糕。

引用自 MSDN:FindWindow

检索其类名和窗口名与指定字符串匹配的顶级窗口的句柄。此函数不搜索子窗口。此函数不执行区分大小写的搜索。

请改用FindWindowEx

于 2013-03-02T21:58:41.470 回答
1

在控件的 hwnd 上使用 GetWindowRect(每个控件都有自己的 hwnd): http: //msdn.microsoft.com/en-gb/library/windows/desktop/ms633519 (v=vs.85).aspx 。这将为您提供左、右、上和下允许知道控件的边界,并计算出它的高度和宽度

于 2013-03-02T19:06:58.203 回答