在c++中找到控件的位置

Find the position of a control in C++

本文关键字:控件 位置 c++      更新时间:2023-10-16

我需要找到控件的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;

chwind为0时,它应该有控件的hWnd

在控件的hwnd上使用GetWindowRect(每个控件都有自己的hwnd): http://msdn.microsoft.com/en-gb/library/windows/desktop/ms633519(v=vs.85).aspx。这将给你左边,右边,顶部和底部,让你知道控件的边界,也计算出它的高度和宽度

您获取HWND的代码很糟糕。

引用MSDN: FindWindow

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