Как определить координаты положения курсора относительно стороннего окна - 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 );
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы