0

この質問は、座標を介してマウスの位置を追跡するために非常に簡単に実装できるツールチップに関するものです。
私にとって唯一の問題は、特定のウィンドウをフォアグラウンドに設定した後に座標を追跡する機能を追加することです...そしてそれはそうではありませんフォームですが、サードパーティのアプリケーションです。

ビジュアルスタジオのWindowsフォームで私のために働くコードは

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);
    }

//それは私がウェブ上のどこかで見たコードであり、さらにグーグルがURLでmsdnソースを見つけた後、再び:

msdn ソース URL

親切に答えていただければ、質問が残ります:サードパーティのツールチップ座標を取得するにはどうすればよいですか(Vs winformウィンドウ以外)

4

2 に答える 2

0

次のいずれかを使用する必要があります (この質問で説明されているように)。

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); 
} 
于 2012-04-12T23:11:54.713 に答える