我有一些C#代码,如下所示:
[DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, ref Rect rect);
Rect rect = Rect.Zero;
NativeMethods.GetWindowRect(hWnd, ref rect);
但是,当我运行此代码时,rect
变量仍等于Rect.Zero
(顶部/底部/左/右全部为零),即使GetWindowRect()
返回成功。这个函数调用序列在C ++中实现时效果很好,但在C#中通过P / Invoke调用时则不行。
我确定我正在呼叫GetWindowRect()
;那不是问题。问题是GetWindowRect()
始终返回RECT
{0,0,0,0}
,无论我如何更改函数调用或如何定义P / Invoke。