首页 > 代码库 > Api代码收集
Api代码收集
收集自网络,方便自己,方便他人
1 #region 隐藏系统滚动条 2 protected override void WndProc(ref System.Windows.Forms.Message m) 3 { 4 ShowScrollBar(this.Handle, 3, false);//0:horizontal,1:vertical,3:both 5 base.WndProc(ref m); 6 } 7 8 [DllImport("user32.dll")] 9 [return: MarshalAs(UnmanagedType.Bool)] 10 private static extern bool ShowScrollBar(IntPtr hWnd, int wBar, bool bShow); 11 #endregion
1 #region 得到光标在屏幕上的位置 2 [DllImport("user32")] 3 public static extern bool GetCaretPos(out Point lpPoint); 4 [DllImport("user32.dll")] 5 private static extern IntPtr GetForegroundWindow(); 6 [DllImport("user32.dll")] 7 private static extern IntPtr GetFocus(); 8 [DllImport("user32.dll")] 9 private static extern IntPtr AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, int fAttach); 10 [DllImport("user32.dll")] 11 private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId); 12 [DllImport("kernel32.dll")] 13 private static extern IntPtr GetCurrentThreadId(); 14 [DllImport("user32.dll")] 15 private static extern void ClientToScreen(IntPtr hWnd, ref Point p); 16 17 private Point CaretPos() 18 { 19 IntPtr ptr = GetForegroundWindow(); 20 Point p = new Point(); 21 22 //得到Caret在屏幕上的位置 23 if (ptr.ToInt32() != 0) 24 { 25 IntPtr targetThreadID = GetWindowThreadProcessId(ptr, IntPtr.Zero); 26 IntPtr localThreadID = GetCurrentThreadId(); 27 28 if (localThreadID != targetThreadID) 29 { 30 AttachThreadInput(localThreadID, targetThreadID, 1); 31 ptr = GetFocus(); 32 if (ptr.ToInt32() != 0) 33 { 34 GetCaretPos(out p); 35 ClientToScreen(ptr, ref p); 36 } 37 AttachThreadInput(localThreadID, targetThreadID, 0); 38 } 39 } 40 return p; 41 } 42 #endregion
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。