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

时间:2013-03-02 19:00:58

标签: c++ winapi mfc

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

获取HWND的代码很糟糕。

来自MSDN:FindWindow

  

检索顶级窗口的句柄,该窗口的类名和窗口   name匹配指定的字符串。此功能不搜索孩子   视窗。此功能不执行区分大小写的搜索。

改为使用FindWindowEx

相关问题