C#调用GetCursorPos为什么总是得到坐标值(0,0)啊?
以下代码为什么返回 x,y会是0,0啊
//定义类
public class POINTAPI
{
public Int32 x;
public Int32 y;
}
//导入并执行GetCursorPos
[DllImport( "User32.dll ")]
private static extern Int32 GetCursorPos(POINTAPI lpPoint);
private void Tb_Print_Click(object sender, EventArgs e)
{
POINTAPI lPos = new POINTAPI();
GetCursorPos(lPos);
MessageBox.Show(lPos.x.ToString() + "\r\n " + lPos.y.ToString());
}
------解决方案-------------------- [DllImport( "User32.dll ")]
private static extern Int32 GetCursorPos(ref POINTAPI lpPoint);
//估计是差一个ref ^^^
有标准.NET方法
Control.MousePosition
------解决方案--------------------//估计是差一个ref
这个函数前两天我刚用过,的确是要用到ref Point
不过奇怪的是他传得是class(引用类型)不是struct(值类型)
[DllImport( "User32.dll ")]
private static extern Int32 GetCursorPos(.....);
这个地方是受import的原始参数限制,不是DllImport这里写的参数限制?
----
伴水老大最近在忙啥?北京没去,可惜无缘拜见