Как определить координаты положения курсора относительно стороннего окна - 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 );
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д