zoukankan      html  css  js  c++  java
  • 光标跟随

           #region 得到光标在屏幕上的位置
     
            [DllImport("user32")]
     
             public static extern bool GetCaretPos(out Point lpPoint);
     
             [DllImport("user32.dll")]
     
             private static extern IntPtr GetForegroundWindow();
     
             [DllImport("user32.dll")]
     
             private static extern IntPtr GetFocus();
     
             [DllImport("user32.dll")]
     
             private static extern IntPtr AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, int fAttach);
     
             [DllImport("user32.dll")]
     
             private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);
     
             [DllImport("kernel32.dll")]
     
             private static extern IntPtr GetCurrentThreadId();
     
             [DllImport("user32.dll")]
     
             private static extern void ClientToScreen(IntPtr hWnd, ref Point p);
     
     
             private Point CaretPos()
     
             {
     
                 IntPtr ptr = GetForegroundWindow();
     
                 Point p = new Point();
     
     
                 //得到Caret在屏幕上的位置   
     
                 if (ptr.ToInt32() != 0)
     
                 {
     
                     IntPtr targetThreadID = GetWindowThreadProcessId(ptr, IntPtr.Zero);
     
                     IntPtr localThreadID = GetCurrentThreadId();
     
     
                     if (localThreadID != targetThreadID)
     
                     {
     
                         AttachThreadInput(localThreadID, targetThreadID, 1);
     
                         ptr = GetFocus();
     
                         if (ptr.ToInt32() != 0)
     
                         {
     
                             GetCaretPos(out   p);
     
                             ClientToScreen(ptr, ref   p);
     
                         }
     
                         AttachThreadInput(localThreadID, targetThreadID, 0);
     
                     }
     
                 }
     
                 return p;
     
             }
     
             #endregion
  • 相关阅读:
    合并二叉树
    剑指 Offer 68
    剑指 Offer 42. 连续子数组的最大和
    C语言 递归实现迷宫寻路问题
    C语言数据结构 统计英文文字每个“单词”出现次数
    C语言 双链表的频度排序管理
    C语言 插入排序使链表递增
    c语言 简单的天数计算器
    数据结构 链表的头插法逆置
    C语言 删除指定的单词
  • 原文地址:https://www.cnblogs.com/swtool/p/6546937.html
Copyright © 2011-2022 走看看