windows api 通过句柄获取控件在窗口的坐标问题?

图片说明

图片说明

NativeRECT sRECT = new NativeRECT();
//get 屏幕 RECT
GetWindowRect(hWnd, out sRECT);
问题1:该方法有时获去到的值是负数 ? 求解答?

  ScreenToClient(hWnd, ref xx);
    问题2:该方法获取到的值 一直是0 


    //结构体布局 本机位置

[StructLayout(LayoutKind.Sequential)]
public struct NativeRECT
{
public int left;
public int top;
public int right;
public int bottom;
}

看你的nativerect怎么定义的,和C++的结构体签名、顺序是否一致。

public struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}

//结构体布局 本机位置
[StructLayout(LayoutKind.Sequential)]
public struct NativeRECT
{
    public int left;
    public int top;
    public int right;
    public int bottom;
}