Как определить координаты положения курсора относительно стороннего окна - C#
Формулировка задачи:
как определить коодинаты относительно окна(не формы)
1. Не предлогать вычислять относительные координаты
2. Живой пример(желательно) или ссылку(нежелательно, но можно)
Решение задачи: «Как определить координаты положения курсора относительно стороннего окна»
textual
Листинг программы
[StructLayout( LayoutKind.Sequential )] struct RECT { public int left; public int top; public int right; public int bottom; } [StructLayout( LayoutKind.Sequential )] struct WINDOWINFO { public int cbSize; public RECT rcWindow; public RECT rcClient; public uint dwStyle; public uint dwExStyle; public uint dwWindowStatus; public int cxWindowBorders; public int cyWindowBorders; public ushort atomWindowType; public ushort wCreatorVersion; } [DllImport( "user32.dll", SetLastError = true )] [return: MarshalAs( UnmanagedType.Bool )] static extern bool GetWindowInfo( [In] IntPtr hWnd, [In, Out] ref WINDOWINFO rect ); static void Main( string[] args ) { var hWnd = (IntPtr)0x00130A4C; // дескриптор окна var wndInfo = new WINDOWINFO( ); wndInfo.cbSize = Marshal.SizeOf( wndInfo ); while ( true ) { if ( !GetWindowInfo( hWnd, ref wndInfo ) ) { Console.Clear( ); break; } var pt = System.Windows.Forms.Cursor.Position; // Замените на GetCursorPos Console.WriteLine( "x: {0} y: {1}", pt.X - wndInfo.rcClient.left, pt.Y - wndInfo.rcClient.top ); Thread.Sleep( 100 ); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д