日期:2014-05-18  浏览次数:20739 次

怎么模拟鼠标点击相对于父窗口内的指定坐标
如果这个窗口是600*400的 我向点击距离窗口右侧边缘100 距下侧边缘100 的位置 该怎么实现

------解决方案--------------------
// 设置鼠标位置
[DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
// 模拟点击
[DllImport("user32.dll")]
static extern bool mouse_event(int dwFlags, int dx, int dy, int dwData, UInt64 dwExtraInfo); 
//点击方法
public void MyClick(int x, int y)
{
SetCursorPos(x, y);
mouse_event(0x2, 0, 0, 0, 0);
mouse_event(0x4, 0, 0, 0, 0);
}
------解决方案--------------------
先获取到左侧边缘的坐标值,应该是X=0,Y=鼠标落点。底部边缘的坐标应该是X=窗体高度,Y=鼠标落点
。作为鼠标的初始坐标。比如你想让鼠从左侧向右偏移100,从底部向上偏移100,那就在初始坐标X,Y各
加上100,100就是偏移量。初始坐标+偏移量。
然后在鼠标的MouseDown事件、MouseMove事件中处理鼠标坐标。


这个窗体是以窗体中间点为鼠标初始坐标开始画线。然后鼠标移动时,实际画出的红线,和当前鼠标实际的坐标,相差100个坐标。画线时的效果就是鼠标在前面走,红线在后面很远的一段距离追。那段距离就是偏移量坐标。