C#工具提示报告3d方窗口上的鼠标坐标

时间:2012-04-12 22:29:25

标签: c# mouseevent

这个问题是关于一个工具提示,你可以很容易地按顺序实现 通过它的坐标跟踪鼠标位置 对我来说唯一的问题是添加跟踪特定坐标的能力 将窗口设置为前景后的窗口......它不是表单,而是第三方 申请。

在Visual Studio窗体上为我​​工作的代码是

ToolTip trackTip;

    private void TrackCoordinates()
    {
        trackTip = new ToolTip();
        this.MouseMove += new MouseEventHandler(Form1_MouseMove);
    }

    void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        String tipText = String.Format("({0}, {1})", e.X, e.Y);
        trackTip.Show(tipText, this, e.Location);
    }

//这就是我在网络上看到过的代码,然后又经过一些谷歌搜索 在网址找到了msdn来源:

msdn source url

所以问题仍然存在,如果你愿意回答: 我如何获得第三方的工具提示坐标(除了Vs winform窗口)

2 个答案:

答案 0 :(得分:0)

subsclass目标窗口和listenWM_MOUSEMOVE消息。

使用计时器并抓住mouse screen coordinates

答案 1 :(得分:0)

您需要使用以下其中一项(如this question中所述):

1.使用Windows窗体。添加对System.Windows.Forms的引用

public static Point GetMousePositionWindowsForms() 
{ 
    System.Drawing.Point point = Control.MousePosition; 
    return new Point(point.X, point.Y); 
} 

2.使用Win32

[DllImport("user32.dll")] 
[return: MarshalAs(UnmanagedType.Bool)] 
internal static extern bool GetCursorPos(ref Win32Point pt); 

[StructLayout(LayoutKind.Sequential)] 
internal struct Win32Point 
{ 
    public Int32 X; 
    public Int32 Y; 
}; 
public static Point GetMousePosition() 
{ 
    Win32Point w32Mouse = new Win32Point(); 
    GetCursorPos(ref w32Mouse); 
    return new Point(w32Mouse.X, w32Mouse.Y); 
}